์ด๋ฒ์๋ ์ง๋ํ์ต๊ณผ ๋ค๋ฅธ, ์ ๋ต ๋ ์ด๋ธ์ด ์ฃผ์ด์ง์ง์๋ ๋น์ง๋ ํ์ต์ ๋ํด ๊ณต๋ถํด๋ณด๊ฒ ์ต๋๋ค.
๋น์ง๋ํ์ต์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์์ต๋๋ค.
1. ๊ตฐ์ง(clustering)
๋น์ทํ ์ํ์ ํด๋ฌ์คํฐ๋ก ๋ฌถ์ต๋๋ค. ๊ตฐ์ง์
๊ณ ๊ฐ๋ถ๋ฅ -> ์ถ์ฒ์์คํ
- ๋์ผํ ํด๋ฌ์คํฐ ๋ด ์ฌ์ฉ์๊ฐ ์ข์ํ๋ ์ปจํ ์ธ ๋ฅผ ์ถ์ฒํ๋ ์ถ์ฒ ์์คํ ์ ๋ง๋ค ์ ์์ต๋๋ค
์ค์ง๋ํ์ต
- ๋ ์ด๋ธ๋ ์ํ์ด ์ ๋ค๋ฉด ๊ตฐ์ง์ ์ํํ๊ณ ๋์ผํ ํด๋ฌ์คํฐ์ ์๋ ๋ชจ๋ ์ํ์ ๋ ์ด๋ธ๋ง์ ํ ์ ์์ญ๋๋ค. ์ด ๊ธฐ๋ฒ์ ์ด์ด์ง๋ ์ง๋ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ๋ ์ด๋ธ์ด ํฌ๊ฒ ์ฆ๊ฐํด ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
์ด๋ฏธ์ง ๋ถํ
- ์์ ๊ธฐ๋ฐ์ผ๋ก ํฝ์ ์ ํด๋ฌ์คํฐ๋ง์ ๋๋ค. ๊ทธ๋ค์ ํฝ์ ์์ ํด๋น ํดใน๋ฌ์คํฐ์ ํ๊ท ์์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ด๋ ์ด๋ฏธ์ง์ ์๋ ์์์ ์ข ๋ฅ๋ฅผ ํฌ๊ฒ ์ค์ ๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋ฌผ์ฒด์ ์ค๊ณฝ์ ์ก๊ธฐ ์ฌ์์ ธ ๋ฌผ์ฒด ํ์ง ๋ฐ ์ถ์ ์์คํ ์์ ์ด๋ฏธ์ง ๋ถํ ์ ๋ง์ด ํ์ฉํฉ๋๋ค.
์ด ์ธ์๋ ๊ฒ์ ์์ง ,๋ฐ์ดํฐ ๋ถ์, ์ฐจ์ ์ถ์ ๊ธฐ๋ฒ ๋ฑ์ ํ์ฉํ ์ ์์ต๋๋ค.
2. ์ด์์น ํ์ง
'์ ์'๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๋ณด์ด๋์ง ํ์ตํ๊ณ ๊ทธ๋ค์ ๋น์ ์ ์ํ์ ๊ฐ์งํ๋๋ฐ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ ํด๋ฌ์คํฐ์ ์นํ์ฑ(affinity)๊ฐ ๋ฎ์ ์ํ์ ์ด์์น์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์น์ฌ์ดํธ ๋ด ํ๋์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค์๋ค๋ฉด, ์ด๋น ์น์๋ฒ ์์ฒญ์ ๋น์ ์์ ์ผ๋ก ๋ง์ดํ๋ ์ฌ์ฉ์๋ฅผ ๊ฐ์งํ ์ ์์ต๋๋ค. ์ ์กฐ๋ถ์ผ ํน์ ๋ถ์ ๊ฑฐ๋ ๊ฐ์ง์๋ ๋๋ฆฌ ํ์ฉ๋ฉ๋๋ค. ์ ์กฐ๋ผ์ธ์์ ๊ฒฐํจ์ ํ์ ๊ฐ์งํ๊ฑฐ๋ ์๊ณ์ด์์ ์๋ก์ด ํธ๋ ๋๋ฅผ ์ฐพ๋๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
3. ๋ฐ๋ ์ถ์
๋ฐ์ดํฐ์ ์์ฑ ํ๋ฅ ๊ณผ์ ์ ํ๋ฅ ๋ฐ๋ํจ์๋ฅผ ์ถ์ ํฉ๋๋ค. ๋ฐ์ดํฐ๋ถ์๊ณผ ์๊ฐํ, ์ด์์น ํ์ง์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐ๋๊ฐ ๋งค์ฐ ๋ฎ์ ์์ญ์ ๋์ธ ์ํ์ด ์ด์์น์ผ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฒ์๋ ๊ตฐ์ง์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ตฐ์ง์ ๋น์ทํ ์ํ์ ํ๊ฐ์ ํด๋ฌ์คํฐ๋ก ํ ๋นํ๋ ์์ ์ ๋๋ค. ๋ถ๋ฅ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ ์ํ์ ํ ๊ทธ๋ฃน์ ํ ๋น๋ฉ๋๋ค. ํ์ง๋ง ๋ถ๋ฅ์ ๋ฌ๋ฆฌ ๊ตฐ์ง์ ๋น์ง๋ํ์ต์ ๋๋ค. ๋ ์ด๋ธ๋ง์ด ๋์ด์๋ ๋ฐ์ดํฐ๋ ๋ก์ง์คํฑํ๊ท, svm, random forest์ ๊ฐ์ ๋ถ๋ฅ ์๊ณ ๋ฆฌ์ฆ์ด ๋ง์ง๋ง, ๋ ์ด๋ธ์ด ์๋ ๋ฐ์ดํฐ์ ์ ๋ถ๋ฅ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๊ตฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ํ์ํ ๊ฒฝ์ฐ์ ๋๋ค.
ํด๋ฌ์คํฐ์ ๋ํ ๋ณดํธ์ ์ ์๋ ์์ต๋๋ค. ์ค์ ๋ก ์ํฉ์ ๋๋ผ ๋ค๋ฆ ๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ด ๋ค๋ฅด๋ฉด ๋ค๋ฅธ ์ข ๋ฅ์ ํด๋ฌ์คํฐ๋ฅผ ๊ฐ์งํฉ๋๋ค. ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ centroid(์ค์ฌ์ )๋ผ ๋ถ๋ฅด๋ ํน์ ํฌ์ธํธ๋ฅผ ์ค์ฌ์ผ๋ก ๋ชจ์ธ ์ํ์ ์ฐพ์ต๋๋ค. ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ํ์ด ๋ฐ์ง๋์ด ์ฐ์๋ ์์ญ์ ์ฐพ์ต๋๋ค. ๋ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ๊ณ์ธต์ ์ผ๋ก ํด๋ฌ์คํฐ์ ํด๋ฌ์คํฐ๋ฅผ ์ฐพ์ต๋๋ค. ์ข ๋ฅ๋ ์์ฃผ ๋ง์ต๋๋ค.
๊ฐ์ฅ ์ ๋ช ํ k-means๋ฅผ ๋จผ์ ๋ณด๊ฒ ์ต๋๋ค.
k-means๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ํด๋ฌ์คํฐ๋งํ ์ ์๋ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ฌ์ดํท๋ฐ์์ ํ๋ จํ๋ ์ฝ๋์ ๋๋ค. ๋ฐ๋์ ์คํ ์ ์ค์ผ์ผ์ ๋ง์ถฐ์ฃผ๋๋กํฉ์๋ค.
from sklearn.cluster import KMeans
k=5
kmeans=KMeans(n_clusters=k)
y_pred=kmeans.fit_predict(X)
ํด๋ฌ์คํฐ ์ k๋ฅผ ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ค์์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๊ตฐ์ง์์ ๊ฐ ์ํ์ ๋ ์ด๋ธ์ ํ ๋น๋ ํด๋ฌ์คํฐ์ ์ธ๋ฑ์ค(์ฌ๊ธฐ์๋ 0~4)์ ๋๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ด ์ฐพ์ ์ค์ฌ์ ๋ค์ฏ๊ฐ๋ ํ์ธํ ์ ์์ต๋๋ค.
kmeans.cluster_centers_
ํด๋ฌ์คํฐ์ ๊ฒฐ์ ๊ฒฝ๊ณ๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด ๋ณด๋ก๋ ธ์ด ๋ค์ด์ด๊ทธ๋จ์ ์ป์ ์ ์์ต๋๋ค. transform()๋ฉ์๋๋ ์ํ๊ณผ ๊ฐ ์ผํธ๋ก์ด๋ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐํํฉ๋๋ค.
kmeans.transform(X_new)
์๊ณ ๋ฆฌ์ฆ์ ์๋ ๋ฐฉ์์ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค.
https://getacherryontop.tistory.com/82
์ต์ ์ ํด๋ฌ์คํฐ ์ ์ฐพ๊ธฐ
์ต์ ์ ํด๋ฌ์คํฐ ๊ฐ์๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ ์ค๋ฃจ์ฃ ์ ์์ ๋๋ค. ์ด ๊ฐ์ ๋ชจ๋ ์ํ์ ๋ํ ์ค๋ฃจ์ฃ ๊ณ์์ ํ๊ท ์ ๋๋ค. ์ํ์ ์ค๋ฃจ์ฃ ๊ณ์๋ (b-a)/max(a,b)๋ก ๊ณ์ฐํฉ๋๋ค. a๋ ๋์ผํ ํด๋ฌ์คํฐ ๋ด๋ถ์ ํ๊ท ๊ฑฐ๋ฆฌ์ด๊ณ , b๋ ๊ฐ์ฅ ๊ฐ๊น์ด ํด๋ฌ์คํฐ๊น์ง์ ํ๊ท ๊ฑฐ๋ฆฌ์ ๋๋ค. ์ํ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ํด๋ฌ์คํฐ๋ ์์์ด ์ํ ํด๋ฌ์คํฐ๋ ์ ์ธํ๊ณ b๊ฐ ์ต์์ธ ํด๋ฌ์คํฐ ์ ๋๋ค. ์ค๋ฃจ์ฃ๊ณ์๋ -1๋ถํฐ +1๊น์ง, +1์ ๊ฐ๊น์ธ์๋ก ์์ ์ ํด๋ฌ์คํฐ์ ์ ์ํด์๊ณ ๋ค๋ฅธํด๋ฌ์คํฐ์๋ ๋ฉ๋ฆฌ ๋จ์ด์ ธ์๋ค๋ ๋ป์ ๋๋ค. 0์ ๊ฐ๊น์ฐ๋ฉด ํด๋ฌ์คํฐ ๊ฒฝ๊ณ์ ์์นํด์๋ค๋ ์๋ฏธ์ด๊ณ -1์ ๊ฐ๊น์ธ์๋ก ์๋ชป ํ ๋น๋์ด์๋ค๋ ์๋ฏธ์ ๋๋ค.
์ค๋ฃจ์ฃ ์ ์๋ฅผ ์ฌ์ดํท๋ฐ์์ ๊ณ์ฐํ ์ ์์ต๋๋ค.
from sklearn.metrics import silhouette_score
silhouette_score(X,kmeans.labels_)
ํด๋ฌ์คํฐ์ ๊ฐ์์ ๋ฐ๋ฅธ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด
4๊ฐ ์ข์ ์ ํ์ด์ง๋ง 5๋ ๊ฝค ์ข์ต๋๋ค.
์ค๋ฃจ์ฃ ๋ค์ด์ด๊ทธ๋จ์ ๊ทธ๋ฆฌ๋ฉด,
ํด๋ฌ์คํฐ๋ง๋ค ์นผ ๋ชจ์์ ๊ทธ๋ํ๊ฐ ๊ทธ๋ ค์ง๋๋ค. ๊ทธ๋ํ์ ๋์ด๋ ํด๋ฌ์คํฐ๊ฐ ํฌํจํ๊ณ ์๋ ์ํ์ ๊ฐ์์ด๊ณ , ๋๋น๋ ํด๋ฌ์คํฐ์ ํฌํจ๋ ์ ๋ ฌ๋ ์ค๋ฃจ์ฃ๊ณ์๋ฅผ ์๋ฏธํฉ๋๋ค = ๋์์๋ก ์ข์ต๋๋ค. ์์ง ํ์ ์ ๊ฐ ํด๋ฌ์คํฐ๊ฐ์์ ํด๋นํ๋ ์ค๋ฃจ์ฃ ์ ์์ ๋๋ค. ๋ง์ ์ํ์ด ํ์ ์ ์ผ์ชฝ์์ ๋ฉ์ถ๋ฉด ํด๋ฌ์คํฐ ๊ฐ ๊ฑฐ๋ฆฌ๊ฐ ๋๋ฌด ๊ฐ๊น๋ค๋ ์๋ฏธ๋ก ๋์ ํด๋ฌ์คํฐ์ ๋๋ค. 3๊ณผ 6์์ ๋ณผ ์ ์์ต๋๋ค. ํ์ง๋ง 4๋ 5๋ ๋๋ถ๋ถ์ ์ํ์ด ํ์ ์ ๋๊ณ , 1.0์ ๊ทผ์ ํด ์ข์ ํด๋ฌ์คํฐ์ ๋๋ค. 4์ผ๋ ์ธ๋ฑ์ค1์ ํด๋ฌ์คํฐ๊ฐ ์์ฃผ ํฐ๋ฐ, 5๋ ๋ชจ๋๋ค ๋น์ทํฉ๋๋ค. ๋ฐ๋ผ์ 5๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
'๋จธ์ ๋ฌ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์๋ธํ์ต๊ณผ ๋ฐฐ๊น (0) | 2022.12.09 |
---|---|
python numpy, pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋, ์ฐจ์ด (0) | 2022.12.08 |
๋จธ์ ๋ฌ๋ ๋ถ๋ฅ ์ฑ๋ฅ ์ธก์ (0) | 2022.12.06 |
์ฐจ์ ์ถ์, PCA python ์ฌ์ดํท๋ฐ (0) | 2022.12.05 |
๋ค์ค ๋ก์ง์คํฑ ํ๊ท (์ํํธ๋งฅ์ค ํ๊ท) (0) | 2022.12.05 |