본문 바로가기

Python-머신러닝

Unsupervised Learning(비지도 학습): K-Means Clustering

반응형

K-Means Clustering

 

Unsupervised Learning

분집: 비슷한 부류끼리 묶어라.

ㄴUnsupervised Learning은 정답이 없다. 

 

 

ㄴ 데이터 분포가 이렇게 되어있다고 할 때, 사람은 눈으로 바로 분류를 할 수 있지만, 컴퓨터는 눈이 없어, 숫자로 처리해야한다.

ㄴ 컴퓨터의 동작방식과 사람의 동작방식이 다르다. 

 

K-means- Clustering

ㄴ K: 개수를 말할 때

ㄴ mean: 평균

ㄴ Clustering :묶는다.

 

(기본적인 진행 스텝이다.)

 

ㄴ 기존 데이터에서 랜덤으로 두 점을 선택한다. (K=2) 

ㄴ 그리고, 피타고라스의 정리로, 두 점의 거리를 구한다. 

ㄴ 거리를 수직이등분하는 선을 찾는다.

 

ㄴ 그 다음에, 그 선을 기준으로 분류를 한다. 

ㄴ 데이터 묶음에서 각자의 mean을 찾는다.

ㄴ mean 값을 찾고, 점 값을 이동시킨다.

ㄴ 또, 그 중심 및 평균을 찾고, 또 선을 긋고, 또 이동, 또 중심 찾고, 또 이동, 또 선을 긋고, 최종적으로 이동이 끝나면, 반복을 끝낸다. 

 

ㄴ 비슷한 부류의 데이터로 잘 뭉쳐지면, mean값으로부터 거리가 짧다.

ㄴ 이질적인 데이터를 하나로 묶으면, mean 값으로부터 거리가 길다.

ㄴ 거리가 긴 것들은 억지로 묶어 놓은것과 같다. 잘 뭉쳐있는 애들이다. 

ㄴ 해당 거리를 wcss( within-cluster sums of squares )라고 한다.

 

 

 

 

- 데이터가 많이 분산되어 있을 경우, 다수의 그룹으로 분류해야한다.

- 몇개로 분류할지는 어떻게 결정하는가? 

 

K의 개수를 정하는 방법

ㄴ 센터가 원소들과 거리가 멀수록 값이 커진다. 따라서 최소값에 가까워지는 갯수를 뽑되, 객수가 너무 많아지면 차별성이 없어진다. 

ㄴ 그럴때 참고하는 것이 ‘The Elbow Method’이다.



(해당 개념으로 실습문제 풀어보는 건 다음 글에서.)

반응형