Clustering - BD-SEARCH/MLtutorial GitHub Wiki

๊ตฐ์ง‘ํ™”(Clustering)

๊ตฐ์ง‘ํ™”(Clustering)์€ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์˜์˜ k๊ฐœ์˜ ๊ตฐ์ง‘(Cluster)์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ถ„๋ฅ˜์™€ ๋‹ฌ๋ฆฌ ์‚ฌ๋žŒ์ด ๋จผ์ € label์„ ๋‹ฌ ํ•„์š”๊ฐ€ ์—†์ด, ๊ฐœ์ˆ˜๋งŒ ์ •ํ•ด ์ฃผ๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์•Œ์•„์„œ ๋น„์Šทํ•œ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ k๊ฐœ์˜ ๊ตฐ์ง‘์œผ๋กœ ๋ชจ์•„ ์ค€๋‹ค.

(1) K-Means Clustering

  • ์ž„์˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ k๊ฐœ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. (์—ฌ๊ธฐ์„œ K๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค)

    • ๊ฐ object์— ๋Œ€ํ•ด k๊ฐœ์˜ ์ค‘์‹ฌ object์™€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ณ  ๊ทธ ์ค‘ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ์ค‘์‹ฌ object์˜ ํด๋Ÿฌ์Šคํ„ฐ์— ์†ํ•˜๊ฒŒ ํ•œ๋‹ค.
    • ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ค‘์‹ฌ์ ์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ๋” ์ด์ƒ ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ๋ณ€ํ™”๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
  • Elbow Method (K-Means Clustering with unknown K)

    • ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ˆ˜๋ฅผ ๋Š˜๋ ค๊ฐ€๋ฉด์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•œ๋‹ค.
    • ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ํ•œ ๊ฐœ ๋Š˜์–ด๋‚ฌ์„ ๋•Œ, ์ด์ „ ๊ฒฐ๊ณผ๋ณด๋‹ค ์•„์ฃผ ์ข‹์•„์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ฉˆ์ถ˜๋‹ค. (Elbow point)
    • ์ด ๋•Œ์˜ Elbow point๊ฐ’์„ K๋กœ ํ•œ๋‹ค. (ํŒ๋‹จ ๊ธฐ์ค€์„ ์ •ํ•ด์•ผ ํ•œ๋‹ค.)
  • Elbow point ํŒ๋‹จ ๊ธฐ์ค€

    • Davies-Bouldin Index

      • ๋‘ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์™€ ์ค‘์‹ฌ์  ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๋ฅผ, ํด๋Ÿฌ์Šคํ„ฐ ์ค‘์‹ฌ์  ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๋กœ ๋‚˜๋ˆ”.
      • ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์œ ์‚ฌ๋„๊ฐ€ ๋†’๊ณ  ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ์œ ์‚ฌ๋„๊ฐ€ ๋‚ฎ์•„์•ผ DB๊ฐ’์ด ๋‚ฎ๋‹ค.
    • Dunn Index

      • ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ์ตœ์†Œ ๊ฑฐ๋ฆฌ์™€ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ์˜ ๋น„์œจ.
      • ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์œ ์‚ฌ๋„๊ฐ€ ๋†’๊ณ  ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ์œ ์‚ฌ๋„๊ฐ€ ๋‚ฎ์•„์•ผ D๊ฐ’์ด ํฌ๋‹ค.
    • Silhouette

      • ๋ฐ์ดํ„ฐ์™€, ๋ฐ์ดํ„ฐ๊ฐ€ ์†ํ•œ ํด๋Ÿฌ์Šคํ„ฐ(a)์™€ ๊ทธ ์ด์›ƒ ํด๋Ÿฌ์Šคํ„ฐ(b) ๊ฐ„์˜ ํ‰๊ท  ๊ฑฐ๋ฆฌ(s)๋ฅผ ๊ตฌํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋Š”์ง€ ํŒ์ •ํ•œ๋‹ค.
      • -1 ~ 1 ์‚ฌ์ด์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ 1์— ๊ฐ€๊นŒ์šธ ์ˆ˜๋ก ์˜ฌ๋ฐ”๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ถ„๋ฅ˜๋œ ๊ฒƒ, -1์— ๊ฐ€๊นŒ์šธ ์ˆ˜๋ก ์ž˜๋ชป๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ถ„๋ฅ˜๋œ ๊ฒƒ์ด๋‹ค.
    • within-cluster sum of squares

      • ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ค‘์‹ฌ์ ๊ณผ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์˜ ์ ๊ณผ์˜ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ.
      • scikit-learn์˜ Cluster ๋ชจ๋“ˆ Kmeans๊ฐ€ ๋ฉค๋ฒ„๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค (Kmeans.inertia_)