๐Ÿ“Š ํ†ต๊ณ„ํ•™ & ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋ก

240215 THU ๋จธ์‹ ๋Ÿฌ๋‹ ์‹ฌํ™” - ๋น„์ง€๋„ํ•™์Šต

ํ–‰ํŒฝ 2024. 2. 15. 11:51

 

 

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: ๊ฐ ๊ตฐ์ง‘ ์ค‘์‹ฌ์ ์˜ ์ขŒํ‘œ
  • ์ˆ˜ํ–‰ ์ˆœ์„œ

 

(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

 

โœ… ์‹ค์Šต

๋งํฌ ์ถ”๊ฐ€

 

 

 

 

3. ๊ทธ ์™ธ ๊ตฐ์ง‘ํ™” ๋ฐฉ๋ฒ•

โœ… ๋””๋น„์Šค์บ” ๊ตฐ์ง‘ํ™”(DBSCAN Clustering)

 

๋””๋น„์Šค์บ” ๊ตฐ์ง‘ํ™” — ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธ์Šค ์Šค์ฟจ

.ipynb .pdf to have style consistency --> Contents

datascienceschool.net

 

โœ… ๊ธฐํƒ€

  • ์œ ์‚ฌ๋„ ์ „ํŒŒ ๊ตฐ์ง‘ํ™”(Affinity Propagation Clustering)
  • ๊ณ„์ธต์  ๊ตฐ์ง‘ํ™”(Hierarchical Clustering)
  • ์ŠคํŽ™ํŠธ๋Ÿด ๊ตฐ์ง‘ํ™”(Spectral Clustering)
  • ๊ฐ€์šฐ์‹œ์•ˆ ํ˜ผํ•ฉ ๋ชจ๋ธ(Gaussian Mixture Model, GMM)