-
[IMLP] Chapter 3. 비지도 학습과 데이터 전처리 (3)Machine Learning 2022. 5. 23. 12:02
** 본 챕터는 탐색적 데이터 분석과 데이터 전처리에 사용할 수 있는 비지도 학습 알고리즘!
** 이미지를 이용한 예제가 많았는데 사실 내 개인연구에는 많이 쓰이지는 않아서 이전처럼 꼼꼼히 공부하진 않았음
[군집]
- 데이터셋을 클러스터라는 그룹으로 나누는 작업
#. k-평균 군집
- k-평균 군집은 데이터의 어떤 영역을 대표하는 클러스터 중심을 찾음: 먼저 데이터 포인트를 가장 가까운 클러스터 중심에 할당하고, 클러스터에 할당된 데이터 포인트의 평균으로 클러스터 중심을 다시 지정하여 데이터 포인트에 변화가 없을 때 알고리즘이 종료됨
- 대각선으로 늘어서 있는 특성을 가진 데이터 그룹을 잘 처리하지 못함
- 벡터 양자화 또는 분해 메서드로서의 k-평균: k-평균을 각 포인트가 하나의 성분으로 분해되는 관점으로 보는 것을 벡터 양자화라 함
- k-평균의 단점은 1) 무작위 초기화를 사용하여 알고리즘의 출력이 난수 초깃값에 따라 달라지고, 2) 찾으려 하는 클러스터의 개수 지정해야 하고, 3) 클러스터 모양을 가정하고 있어 활용 범위가 제한적
#. 병합 군집
- 시작할 때 각 포인트를 하나의 클러스터로 지정하고 어떤 종료 조건 만족할 때까지 가장 비슷한 두 클러스터를 합쳐나감
- scikit-learn의 옵션: ward(모든 클러스터 내의 분산을 가장 작게 증가시키는 두 클러스터를 합침), average (클러스터 포인트 사이의 평균 거리가 가장 짧은 두 클러스터를 합침), complete (최대 연결이라고도 하며 포인트 사이의 최대 거리가 가장 짧은 두 클러스터를 합침)
- ward가 대부분의 데이터셋에 알맞음
- 새로운 데이터 포인트에 대한 예측은 할 수 없으므로 predict 메서드가 없음
- 훈련 세트로 모델 만들고 클러스터 소속 정보 얻기 위해 fit_predict 메서드 사용
- 계층적 군집과 덴드로그램: 병합 군집은 계층적 군집을 만들며 이러한 계층 군집을 시각화하는 덴드로그램 (scikit-learn으로 그릴 수 없지만 SciPy 사용 가능)
#. DBSCAN
- density-based spatial clustering of applications with noise
- 클러스터 개수 미리 지정할 필요 없고 어떤 클래스에도 속하지 않는 포인트 구분 가능
- 가까이 있는 데이터가 많아 붐비는 지역의 포인트(밀집 지역) 찾고 밀집 지역에 있는 포인트를 핵심 샘플이라고 함
- 매개변수: min_samples .. eps 거리 안에 min_samples 개수만큼 들어 있으면 핵심 샘플로 분류함
- eps 안에 있는 포인트 수가 min_samples보다 적다면 어떤 클래스에도 속하지 않는 잡음(noise)으로 레이블함
#. 군집 알고리즘의 비교와 평가
- 알고리즘이 잘 작동하는지 평가하거나 여러 알고리즘의 출력을 비교하기가 매우 어려움
- 타깃값으로 군집 평가하기 : 1(최적일 때)과 0 (무작위로 분류됨) 사이의 값을 제공하는 ARI (adjusted rand index)와 NMI (normalized mutual information)
- 타깃값 없이 군집 평가하기: 실루엣 계수(밀집 정도를 계산하여 높을수록 좋은데 최대 점수는 1)
'Machine Learning' 카테고리의 다른 글
**[Machine Learning] Gradient Boost (0) 2022.05.17 [Machine Learning] LightBGM (0) 2022.05.17 [Machine Learning] XGBoost (0) 2022.05.17 [Machine Learning] 에이다부스트 (AdaBoost) (0) 2022.05.17 [Machine Learning] 앙상블 학습 (Ensemble Learning): 배깅 (Bagging)과 부스팅 (Boosting) (0) 2022.05.17