240215 THU ๋จธ์ ๋ฌ๋ ์ฌํ - ๋น์ง๋ํ์ต
0. ๋จธ์ ๋ฌ๋ ๊ฐ์ (๋ณต์ต)
- ๋น์ง๋ ํ์ต ์์
- ๊ณ ๊ฐ ํน์ฑ์ ๋ฐ๋ฅธ ๊ทธ๋ฃนํ
- ex) ํค๋น์ ์ , ์ผ๋ฐ์ ์
- ๊ตฌ๋งค ๋ด์ญ๋ณ๋ก ๋ฐ์ดํฐ ๊ทธ๋ฃนํ
- ex) ์ํํ ๊ตฌ๋งค
- ๊ณ ๊ฐ ํน์ฑ์ ๋ฐ๋ฅธ ๊ทธ๋ฃนํ
1. ๊ตฐ์งํ ์ด๋ก
- ๊ตฐ์งํ(clustering)
- ์ฃผ์ด์ง ๋ฐ์ดํฐ ์งํฉ์ ์ ์ฌํ ๋ฐ์ดํฐ๋ค์ ๊ทธ๋ฃน์ผ๋ก ๋๋๋ ๊ฒ
- ๊ตฐ์ง(cluster)
- ๋๋์ด์ง ์ ์ฌํ ๋ฐ์ดํฐ์ ๊ทธ๋ฃน
โ K-ํ๊ท ๊ตฐ์งํ (K-means Clustering)
๊ตฐ์งํ ๋ฐฉ๋ฒ ์ค ํ๋๋ก, ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ k๊ฐ์ ๊ตฐ์ง(ํด๋ฌ์คํฐ)์ผ๋ก ๋ฌถ๋ ์๊ณ ๋ฆฌ์ฆ
๊ฐ ํด๋ฌ์คํฐ์ ๊ฑฐ๋ฆฌ ์ฐจ์ด์ ๋ถ์ฐ์ ์ต์ํํ๋ ๋ฐฉ์์ผ๋ก ๋์
k-ํ๊ท ์๊ณ ๋ฆฌ์ฆ - ์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์
์ํค๋ฐฑ๊ณผ, ์ฐ๋ฆฌ ๋ชจ๋์ ๋ฐฑ๊ณผ์ฌ์ . k-ํ๊ท ์๊ณ ๋ฆฌ์ฆ(K-means clustering algorithm)์ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ k๊ฐ์ ํด๋ฌ์คํฐ๋ก ๋ฌถ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๊ฐ ํด๋ฌ์คํฐ์ ๊ฑฐ๋ฆฌ ์ฐจ์ด์ ๋ถ์ฐ์ ์ต์ํํ๋ ๋ฐฉ์์ผ๋ก ๋์
ko.wikipedia.org
- ์ฅ์
- ์ผ๋ฐ์ ์ด๊ณ ์ ์ฉํ๊ธฐ ์ฌ์
- ๋จ์
- ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๊น์์ ์ธก์ ํ๊ธฐ ๋๋ฌธ์ ์ฐจ์์ด ๋ง์ ์๋ก ์ ํ๋๊ฐ ๋จ์ด์ง
- ๋ฐ๋ณต ํ์๊ฐ ๋ง์ ์๋ก ์๊ฐ์ด ๋๋ ค์ง
- ๋ช ๊ฐ์ ๊ตฐ์ง(K)์ ์ ์ ํ ์ง ์ฃผ๊ด์ ์
- ํ๊ท ์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์(์ค์ฌ์ ) ์ด์์น์ ์ทจ์ฝํจ
- Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- sklearn.cluster.KMeans
- ํจ์ ์
๋ ฅ ๊ฐ
- n_cluster: ๊ตฐ์งํ ๊ฐฏ์
- max_iter: ์ต๋ ๋ฐ๋ณต ํ์
- ๋ฉ์๋
- labels_: ๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ๊ฐ ์ํ ๊ตฐ์ง ์ค์ฌ์ ๋ ์ด๋ธ
- cluster_centers: ๊ฐ ๊ตฐ์ง ์ค์ฌ์ ์ ์ขํ
- ํจ์ ์
๋ ฅ ๊ฐ
- sklearn.cluster.KMeans
- ์ํ ์์
(1) K๊ฐ ๊ตฐ์ง ์ ์ค์
(2) ์์์ ์ค์ฌ์ ์ ์
(3) ํด๋น ์ค์ฌ์ ๊ณผ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ๊น์ด ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํ
(4) ๋ฐ์ดํฐ์ ๊ทธ๋ฃน์ ๋ฌด๊ฒ ์ค์ฌ์ผ๋ก ์ค์ฌ์ ์ ์ด๋
(5) ์ค์ฌ์ ์ ์ด๋ํ๊ธฐ ๋๋ฌธ์ ๋ค์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ๊น์ด ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํ (3~5๋ฒ ๋ฐ๋ณต)
2. ๊ตฐ์งํ๊ฐ ์งํ: ์ค๋ฃจ์ฃ ๊ณ์ (Silhouette coefficient)
๊ตฐ์งํ๊ฐ ์ ๋์ด ์๋ค = ๋ค๋ฅธ ๊ตฐ์ง ๊ฐ ๊ฑฐ๋ฆฌ๋ ๋จ์ด์ ธ ์๊ณ , ๋์ผํ ๊ตฐ์ง๋ผ๋ฆฌ๋ ๊ฐ๊น์ด ์๋ค
โ ์ค๋ฃจ์ฃ ๋ถ์ (silhouette analysis)
๊ฐ ๊ตฐ์ง ๊ฐ ๊ฑฐ๋ฆฌ๊ฐ ์ผ๋ง๋ ํจ์จ์ ์ผ๋ก ๋ถ๋ฆฌ๋์ด ์๋์ง ์ธก์
- ์ค๋ฃจ์ฃ ๊ณ์
- 1๋ก ๊ฐ์๋ก ๊ทผ์ฒ์ ๊ตฐ์ง๊ณผ ๋ ๋ฉ๋ฆฌ ๋จ์ด์ง
- 0์ ๊ฐ๊น์ธ ์๋ก ๊ทผ์ฒ ๊ตฐ์ง๊ณผ ๊ฐ๊น์์ง
$$ S(i) = \frac{b(i)-a(i)}{max(a(i),b(i))} \ ๋จ, \ i๋ ๋ฐ์ดํฐ $$
โก๏ธ ํน์ ํ ๋ฐ์ดํฐ i์ ์ค๋ฃจ์ฃ ๊ณ์๋ ์ผ๋ง๋ ๋จ์ด์ ธ์๋๊ฐ($b(i) -a(i)$)๊ฐ ํด์๋ก ํฌ๋ฉฐ,
์ด๋ฅผ ๋จ์ ์ ๊ทํ๋ฅผ ์ํด $a(i), b(i)$ ๊ฐ ์ค์ ํฐ ๊ฐ์ผ๋ก ๋๋
- ์ข์ ๊ตฐ์งํ์ ์กฐ๊ฑด
- ์ค๋ฃจ์ฃ ๊ฐ์ด ๋์์๋ก(1์ ๊ฐ๊น์)
- ๊ฐ๋ณ ๊ตฐ์ง์ ํ๊ท ๊ฐ์ ํธ์ฐจ๊ฐ ํฌ์ง ์์์ผ ํจ
- Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- sklearn.metrics.sihouette_score: ์ ์ ๋ฐ์ดํฐ์ ์ค๋ฃจ์ฃ ๊ณ์ ํ๊ท ๊ฐ ๋ฐํ
- ํจ์ ์
๋ ฅ ๊ฐ
- X: ๋ฐ์ดํฐ ์ธํธ
- labels: ๋ ์ด๋ธ
- metrics: ์ธก์ ๊ธฐ์ค ๊ธฐ๋ณธ์ euclidean
- ํจ์ ์
๋ ฅ ๊ฐ
- sklearn.metrics.sihouette_score: ์ ์ ๋ฐ์ดํฐ์ ์ค๋ฃจ์ฃ ๊ณ์ ํ๊ท ๊ฐ ๋ฐํ
โ ์ค์ต
๋งํฌ ์ถ๊ฐ
3. ๊ทธ ์ธ ๊ตฐ์งํ ๋ฐฉ๋ฒ
โ ๋๋น์ค์บ ๊ตฐ์งํ(DBSCAN Clustering)
๋๋น์ค์บ ๊ตฐ์งํ — ๋ฐ์ดํฐ ์ฌ์ด์ธ์ค ์ค์ฟจ
.ipynb .pdf to have style consistency --> Contents
datascienceschool.net
โ ๊ธฐํ
- ์ ์ฌ๋ ์ ํ ๊ตฐ์งํ(Affinity Propagation Clustering)
- ๊ณ์ธต์ ๊ตฐ์งํ(Hierarchical Clustering)
- ์คํํธ๋ด ๊ตฐ์งํ(Spectral Clustering)
- ๊ฐ์ฐ์์ ํผํฉ ๋ชจ๋ธ(Gaussian Mixture Model, GMM)