ML_AI/Inflearn 머신러닝 이론 및 파이썬 실습

5. 클러스터링 알고리즘 및 파이썬 실습

안정민 2024. 2. 8. 14:33

1. k-mean 클러스터링

-unsupervised  머신러닝 기법 중 하나 (비지도 학습)

 

-k-mean 클러스터링을 수행하기 위한 단계

(1) 데이터 셋 준비하기

(2) 필요한 클러스터의 개수 설정 -> 모든 사람의 신체 사이즈를 s, m, l로 평준화하여 옷 제작 (클러스터 개수 3)

(3) 클러스터의 초기 중심값을 설정 (centeroid)

-임의로 설정된 센터로이드 (randomly selected centeroid)

-매뉴얼대로 배정된 센터로이드(manually assigned centeroid)

-kmean ++

(4) 주어진 데이터 포인트들을 센터로이드를 중심으로 어떤 중심에 더 가까운지 판단하여 클러스터 소속 지정

(5) 모든 데이터 포인트들의 소속을 지정하였다면, 클러스터의 중심을 데이터들 군집의 가장 중심으로 옮겨줌

(6) 단계 4와 5를 반복 -> 반복이 끝나는 시점은, 포인트들의 움직임이 더이상 나타나지 않을 때, 혹은 maximum clustering assignment 횟수를 지나친 경우이다.

 

-centeroid 초기화하는 세 가지 방법

(1) 임의로 설정된 센터로이드 (randomly selected centeroid)

(2) 매뉴얼대로 배정된 센터로이드(manually assigned centeroid) 

->값이 이미 실제 세계에 존재하는 경우, 임의로 설정하는 것이 아니라 해당 값에 박아둠

 

(3) kmean ++

-> 이니셜 포인트를 배정할 수도, 임의로 설정할 수도 없는 경우, 조금 더 개선된 방법으로 활용할 수 있는 메소드

-> 실제 scikit-learn에서도, 개발자가 직접 센터로이드를 지정하지 않는 경우 kmean++ 을 활용하여 임의로 센터로이드를 설정해주는 방법을 채택하고 있음

-> 첫 번째 데이터 포인트 위치에 첫 번째 센터로이드를 위치시킴

-> 두 번째 센터로이드는 첫 번째 센터로이드에서 가장 먼 곳

-> 세 번째 센터로이드는 첫 번째와 두 번째 센터로이드에서 공통적으로 먼 곳으로 위치시키게 된다

 


 

 

https://github.com/minsuk-heo/python_tutorial/blob/master/data_science/kmean/kmean.ipynb