공부

[혼공학습단11기] 혼공머신 5주차

Steboong 2024. 2. 4. 19:11

군집 알고리즘부터 내가 원했던 무언가가 나오기 시작한 것 같아서 이해가 쏙쏙 되는 듯 하다. 예전에는 특성이 뭔지 왜 물고기를 분류하는데 머신러닝이 필요한지, 특성이 다 있는데 알고리즘으로 처리하면 되지 왜 머신러닝을 쓰나 싶었는데 이번 장부터 아~ 이래서 앞에 이야기가 필요하구나 싶은 생각이 들었다. 이미지 분류하고 개/고양이 구별하고 이런거 해보고 싶었다구요.


K-평균(K-means) 알고리즘은 데이터를 특정 개수의 그룹(클러스터)으로 나누는 데 사용되는 간단하면서도 강력한 기법입니다. 이 알고리즘은 비슷한 특성을 가진 데이터 포인트들을 함께 묶어서 여러 클러스터를 형성합니다. 작동 방식은 아래와 같습니다.

  1. 클러스터의 개수 정하기 (K 결정): 우선 데이터를 몇 개의 그룹으로 나눌지 결정해야 합니다. 이 개수를 K라고 합니다. 예를 들어, 우리가 과일들을 묶어서 3개의 그룹을 만들고 싶다면 K=3이 됩니다.
  2. 중심점(centroid) 초기화: K개의 클러스터 각각에 대해 중심점을 무작위로 정합니다. 이 중심점은 해당 클러스터의 중심을 나타냅니다.
  3. 데이터 포인트 할당: 각 데이터 포인트를 가장 가까운 중심점이 속한 클러스터에 할당합니다. 거리를 계산할 때는 주로 유클리디안 거리(직선 거리)를 사용합니다.
  4. 중심점 업데이트: 할당된 데이터 포인트들을 바탕으로 각 클러스터의 중심점을 다시 계산합니다. 새로운 중심점은 해당 클러스터에 속한 모든 데이터 포인트들의 평균 위치로 설정합니다.
  5. 수렴할 때까지 반복: 3번과 4번의 단계를 클러스터의 할당이 변하지 않거나, 중심점이 더 이상 변하지 않거나, 또는 사용자가 설정한 반복 횟수에 도달할 때까지 반복합니다.

K-평균 알고리즘은 매우 직관적이고 구현하기도 쉽지만, 몇 가지 단점이 있습니다. 예를 들어, 클러스터의 개수 K를 미리 정해야 하고, 클러스터의 모양이 구형에 가깝다고 가정합니다. 또한, 다른 클러스터링 알고리즘에 비해 이상치(outliers)에 민감할 수 있습니다.

그럼에도 불구하고, K-평균은 데이터를 빠르고 효율적으로 클러스터링하는 강력한 방법으로 널리 사용됩니다.


[확인 문제]

  1. p.319 에서 "과일 사진의 경우 10,000개의 픽셀이 있기 때문에 10,000개의 특성이 있는 셈이죠. 머신러닝에서는 이런 특성을 차원(dimension)이라고도 부릅니다. 10,000개의 특성은 결국 10,000개의 차원이라는 건데 ..."
    답. 2
  2. (1000, 100) 에서 PCA 클래스를 사용해 10개의 주성분을 찾아 변환했다면 샘플 개수는 그대로이고 특성 개수만 10으로 줄어들게 되므로 (1000, 10)
    답. 1
  3. p.325 "주성분이 원본 데이터의 분산을 얼마나 잘 나타내는지 기록한 값을 설명된 분산(explained variance)라고 합니다. PCA 클래스의 explained_variance_ratio_에 각 주성분의 설명된 분산 비율이 기록되어 있습니다. 당연히 첫 번째 주성분의 설명된 분산이 가장 큽니다."  
    답. 1
반응형