1) clustering algorithm
- K-means algoritm : 가장 유명한 clustering algo의 종류
<순서>
- 임의의 두 개의 cluster centroids를 선택한다.
- 각각의 자료들이, 두 cluster centroids중 어디에 속하는지 결정
한다.
- 각각의 색깔들의 평균이 되는 지점을 선택한다.
-> 새로운 centroid 선택
- 각각의 centroid에 가까운 자료들을 재결정한다
-> 위의 과정들 반복루프
<특징>
- K 는 centroid의 갯수라고 할 수 있다.
- 몇 개의 cluster를 만들고 싶은가? -> K 개의 cluster를 만들고싶다
<공식>
- c^(i) : x^(i) 에 가장 가까운 cluster centroid의 인덱스값
(매 턴마다 cluster centroid가 K개 있는데, 그 중에서 i인덱스 값을
갖는 centroid를 의미한다)
<응용>
- 만약에 제대로 잘 구별되지 않은 데이터가 주어질때, 보통 사람이
생각하기에는 구별이 불가능하다 생각하지만,
K-means 알고리즘을 이용하면 구별이 가능하다
ex) 옷 사이즈 구별
2) Optimization Objective : K-means알고리즘을 좀 더 효율적으로 쓸 수
있는 방법을 배우기 위함
- c^(i) 의 재정의 : x^(i)가 현재 속해 있는 cluster의 index값
- 뮤k : k번째 cluster centroid를 의미
- 뮤_c^(i) : x^(i)가 현재 속해있는 cluseter centroid
- || x(i) - 뮤_c(i) || = i번째 데이터와, i번째 데이터에 가장 가까운 centroid와의
거리값을 의미
=> K-means의 최적화 목표 : 이 거리값을 최소로 만드는것
3) Random Initialization :
K-means 처음에 시작할때, 임의의 점에서 시작하는 방식
<순서>
- 여러 개의 데이터들 중에서, 임의의 K개의 example을 선택한다
- 그 선택된 example들을 각각 뮤 라고 설정한다.
<특징>
- 어떤 지점에서 Initialization을 시작했느냐에따라 결괏값이 달라질 수 있다.
-> 해결방법? K-means 알고리즘을 여러 번 실행하자!!
(단, K의 값이 크면 클수록 여러번 실행하는게 비효율적이므로 지양)
4) Choosing the Number of Clusters :
몇 개의 군집으로 이뤄져있는지 어떻게 알 수 있을까?
<방식>
1) Elbow method :
(순서)
- K값을 1부터 하나씩 늘려나간다.
- 그러면서, Cost Function J값이 급격하게 꺾이는 부분을 선택한다 (Elbow부분)
- 그때의 K값을 가장 적당한 cluster 갯수라고 정한다.
(한계)
- 아예 Elbow가 없는 그래프가 있을 수도 있다 -> 그럴 경우엔 못 정함.
** 시험 문제
만약에, 갑자기 Cost Function J값이 감소하다가 상승하는 부분이 생긴다면?
-> Bad Local Minimum에 빠진 것이므로, 새로이 시작해야만 한다.