머신러닝을 정리할 겸 한빛미디어가 진행하는 혼공 학습단 5기에 참여했다. 1, 2장에 대해 학습을 진행했다.

기본 미션

  1. 무작위로 k개의 클러스터 중심 (cluster center) 또는 센트로이드 (centroid)를 찾습니다.

  2. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정합니다.

  3. 클러스터에 속한 샘플의 평균값으로 클러스터의 중심을 변경합니다.

  4. 클러스터의 중심에 변화가 없을 때 까지 2번으로 돌아가 반복합니다.

랜덤하게 클러스터 중심을 구하고 점차 가까운 샘플의 중심으로 이동하는 알고리즘.

클러스터 개수를 사전에 지정해야한다는 단점이 있음.

클러스터에 속한 샘플이 얼마나 가깝게 모여있는지 제곱 합을 이용해서 계산하는 것을 이너셔(intertia)라 부름. 일반적으로 클러스터의 개수가 늘어나면 클러스터 개개의 크기가 줄어들기 때문에 이너셔가 줄어듬.

클러스터의 개수를 늘려가며 이니셔의 변화를 측정하여 최적의 클러스터 개수를 찾는 것을 엘보(elobow)라 부름. 이 지점이 팔꿈치 모양과 유사하기 때문. 클러스터의 개수를 증가시키며 이니셔의 그래프를 그리면 감소하는 속도가 꺽이는 지점이 있고 이 지점부터는 크게 개선되지 않음.

심화 미션

  1. 특성이 20개인 대량의 데이터셋이 있습니다. 이 데이터셋에서 찾을 수 있는 주성분 개수는 몇 개일까요? (2) 20개

  2. 샘플 개수가 1,000개이고 특성 개수는 100개인 데이터셋이 있습니다. 즉 이 데이터셋의 크기는 (1000, 100)입니다. 이 데이터를 사이킷런의 PCA 클래스를 사용해 10개의 주성분을 찾아 변환했습니다. 변환된 데이터셋의 크기는 얼마일까요? (1) (1000, 10)

  3. 2번 문제에서 설명된 분산이 가장 큰 주성분은 몇 번째인가요? (1) 첫 번째 주성분