쿠다 4기/<혼공> 머신러닝& 딥러닝
-
Week#5 주성분 분석쿠다 4기/<혼공> 머신러닝& 딥러닝 2023. 8. 29. 11:25
차원이 너무 많으면 데이터 크기가 너무 커 문제가 생길 수 있다. 데이터를 가장 잘 나타내는 일부 특성을 선택하여 데이터 크기를 줄이고 지도 학습 모델의 성능을 향상시킬 수 있는 방법은 차원 축소이다. 또한 줄어든 차원에서 다시 원본 차원으로 손실을 최대한 줄이면서 복원도 할 수 있다. 대표적인 차원 축소 알고리즘인 주성분 분석(PCA) 에 대해 알아보자. 먼저 주성분 분석이란, 데이터에 있는 분산이 큰 방향을 찾는것이다. 여기서 분산이 크다는 것은 데이터가 널리 퍼져있다, 길게 늘어져있다 정도로 받아들이면 된다 .예를들어 그림1에서 분산이 가장 큰 방향은 어디일까? 그림2의 보라색 화살표 방향이다. 이 벡터(2,1)가 데이터의 분포를 가장 잘 표현하는 방향이다. 이 벡터를 주성분이라고 한다. 주성분 분..
-
Week #5 k-평균쿠다 4기/<혼공> 머신러닝& 딥러닝 2023. 8. 29. 10:39
앞선 포스팅에서는 사과, 파인애플, 바나나 사진임을 미리 알고 있어서 각 과일의 픽셀 평균을 구할 수 있었지만 진짜 비지도 학습에서는 사진에 어떤 과일이 들어 있는지 알지 못한다. 이런 경우에는 k-평균 군집 알고리즘이 평균값을 자동으로 찾아준다. k-평균 알고리즘 작동 방식에 대해 먼저 알아보자. 1. 무작위로 k개의 클러스터 중심을 정한다. 2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다. 3. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다. 4. 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복한다. 이제 실제로 과일 데이터에 적용해보자. 사이킷런의 k-평균 알고리즘은 sklearn.cluster모듈 아래 KMeans클래스에 구현되어 있다. 군..
-
Week#5 군집 알고리즘쿠다 4기/<혼공> 머신러닝& 딥러닝 2023. 8. 29. 09:37
지금까지는 모두 타깃이 주어진 상태에서 학습을 하고 예측하는 지도학습을 하였다. 이번 시간부터는 타깃을 모르는 사진을 종류별로 분류하는 비지도 학습에 대해 다루고자 한다. 사과/파인애플/바나나 사진들이 무작위로 주어졌을 때 이들을 과일 종류별로 분류하는 모델을 만들어야 한다. 어떻게 해야할까? 사진의 픽셀값을 모두 평균 내면 비슷한 과일끼리 모이지 않을까? 비지도 학습 우선 데이터를 불러온다. 이 배열의 첫 번째 차원(300)은 샘플의 개수, 두 번째 차원(100)은 이미지 높이, 세 번째 차원(100)은 이미지 너비이다. 이미지 크기는 100x100이고 각 픽셀은 넘파이 배열의 원소 하나에 대응한다. 이 데이터는 사과, 바나나, 파인애플이 각각 100개씩 들어 있다. 픽셀값 분석 이제 fruits 데이..
-
Week #4 트리의 앙상블쿠다 4기/<혼공> 머신러닝& 딥러닝 2023. 8. 18. 08:45
앙상블 학습은 정형 데이터를 다루는 데 가장 뛰어난 성과를 내는 알고리즘이다. 이번 포스팅에서는 여러가지 앙상블 학습 알고리즘을 알아볼 것이다. 랜덤 포레스트 대표적인 앙상블 학습의 종류로, 가장 먼저 시도해보아야 한다. 결정 트리를 랜덤하게 만들어 숲을 만들고, 각 결정 트리의 예측을 사용해 최종 예측을 만드는 원리이다. 각트리를 훈련하기 위해 데이터를 랜덤하게 만드는데, 훈련 데이터에서 랜덤하게 샘플을 추출하여 훈련 데이터를 만든다. 한 샘플이 중복되어 추출될 수 있다. 이렇게 만들어진 샘플을 부트스트랩 샘플이라고 한다. 부트스트랩 샘플은 훈련 세트와 크기가 같다. 그림1은 3개의 샘플을 갖는 원래 데이터에서 각 3번의 복원추출로 B개의 부트스트랩 샘플을 만들었음을 알 수 있다. 각 또한 노드를 분할..
-
Week#4 교차 검증과 그리드 서치쿠다 4기/<혼공> 머신러닝& 딥러닝 2023. 8. 18. 08:03
테스트 세트로 계속 모델을 평가하면 일반화 성능이 떨어지지 않을까? 테스트 세트를 사용하지 않는 방법으로 검증 세트를 활용하는 방법이 있다. 훈련 세트를 또 나누는 것이다. 훈련 세트에서 모델을 훈련하고 검증 세트로 모델을 평가한다. 이때, 테스트 하고 싶은 매개변수를 바꿔가며 가장 좋은 모델을 고르고 마지막에 이 매개변수로 전체 훈련 데이터에서 모델을 다시 훈련하고 테스트 세트에서 최종 점수를 평가한다. 과대적합 되었다. 매개변수를 바꿔 더 좋은 모델을 찾아야 한다. 교차검증 교차 검증을 이용하면 안정적인 검증 점수를 얻고 훈련에 더 많은 데이터를 이용할 수 있다. 검증 세트를 떼어 내어 평가하는 과정을 여러 번 반복한 뒤 이 점수를 평균하여 최종 검증 점수를 얻는것이다. 교차 검증은 위와 같은 방법으..
-
Week #4 결정 트리쿠다 4기/<혼공> 머신러닝& 딥러닝 2023. 8. 18. 02:00
캔에 인쇄된 알코올 도수, 당도, pH로 레드와인/ 화이트와인을 구분해 판단해보려 한다. 저번 포스팅에서 로지스틱 회귀에 대해 다루었는데, 이번에도 로지스틱 회귀 방법으로 레드와인인지 화이트와인인지 구분하겠다. 로지스틱 회귀로 레드와인/ 화이트와인 분류하기 우선 데이터를 불러오고 전처리를 진행하겠다. 이제 훈련해보겠다. 훈련 세트와 테스트 세트의 점수가 모두 높지 않다. 과소적합되었다. 계수를 확인해보니 알코올과 당도가 높고, pH는 낮을수록 화이트 와인일 가능성이 높은 것 같다. 그러나 정확히 이 계수들이 어떤 의미인지 설명하기 어렵고, 과소적합되었다는 문제점이 있다. 설명하기 쉬운 다른 방법이 없을까? 결정 트리 결정 트리는 설명하기 쉬운 모델이다. 스무고개 처럼 질문을 하나씩 던져가며 정답과 맞춰가..
-
Week #3 확률적 경사 하강법쿠다 4기/<혼공> 머신러닝& 딥러닝 2023. 8. 15. 11:42
생선마켓에 수산물을 공급하겠다는 곳이 너무 많아 훈련 데이터의 샘플을 어떻게 골라낼지에 대한 고민에 빠졌다. 1. 기존 훈련 데이터에 새로운 데이터를 추가해 매일 다시 훈련할까? 2. 새로운 데이터를 추가할 때 이전 데이터를 버려 훈련 데이터 크기를 유지할까? 3. 훈련한 모델을 버리지 않고 새로운 데이터에 대해서만 조금씩 더 훈련할 수는 없을까? 1,2 번의 방법은 여러 문제점들이 있고, 3번이 적합한 방법인 것 같다. 3번과 같은 훈련방식을 점진적 학습 또는 온라인 학습이라고 부른다. 대표적으로 확률적 경사 하강법이 있다. 확률적 경사 하강법 먼저 경사하강법에 대해 알아보자. 경사하강법은 가장 가파른 경사를 따라 원하는 지점에 도달하는 것이 목표이다. 단, 조금씩 내려와야 한다. 그 방법은 훈련세트에..
-
#Week 3 로지스틱 회귀쿠다 4기/<혼공> 머신러닝& 딥러닝 2023. 8. 15. 10:31
구성품을 모른 채 구매하는 상품인 럭키백에는 7개의 생선이 들어간다. 럭키백에 들어간 생선의 크기, 무게 등이 주어졌을 때 각 생선이 럭키백에 있을 확률을 알려줄 것이다. 그러면 k-최근접 이웃 분류기로 샘플 주변에 가까운 n개 샘플의 클래스 비율을 확률이라고 해보자. k-최근접 이웃 분류기 우선 데이터를 불러왔다. head()를 통해 위의 5개 샘플만 나타내었다. unique()함수를 사용해 Species열에서 고유한 값을 추출하였다. 총 7개의 생선 종류가 있다. fish_input과 fish_target을 만들고, 훈련세트와 테스트 세트를 분리한다. 훈련세트와 테스트 세트를 표준화 전처리해주었다. 이제 k-최근접 이웃 분류기(k=3)로 훈련세트와 테스트 세트 점수를 확인한 결과 위와 같은 점수가 나..