본문 바로가기
기계학습/코세라 - 기계학습 (Andrew Ng)

week8

by tryotto 2019. 8. 14.

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에 빠진 것이므로, 새로이 시작해야만 한다.



'기계학습 > 코세라 - 기계학습 (Andrew Ng)' 카테고리의 다른 글

week9  (0) 2019.08.14
week8 (2)  (0) 2019.08.14
week7  (0) 2019.08.14
week6  (0) 2019.08.14
week5  (0) 2019.08.14