๐ค KNN(K - Nearest Neighors Classifier)
KNN์ด๋ ๋ง ๊ทธ๋๋ก K๊ฐ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ด์(๋ฐ์ดํฐ)๋ค์ ์ด์ฉํ์ฌ ๋ถ๋ฅ๋ฅผ ์งํํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
๋งค์ฐ ๋จ์ํ ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง ์๊ฐ๋ณด๋ค ์ข์ ์ฑ๋ฅ์ ๋ด๊ธฐ ๋๋ฌธ์ ๋๋๊ณค๋ณผ์ ์ ํฌ๋ ฅ ์ธก์ ๊ธฐ์ ๊ฐ์ ์ญํ ์ ํฉ๋๋ค.
์ฆ, KNN์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ์ข์ง ๋ชปํ ์ฑ๋ฅ์ ๋ด๋ ๋ชจ๋ธ๋ค์ ๋ฏฟ๊ณ ๊ฑธ๋ฌ์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ KNN์ ๋ํด ๋ฐฐ์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ KNN(k-Nearest Neighbors Classifier)
๊ฒฐ๊ตญ ์ฐ๋ฆฌ๊ฐ ๊ณต๋ถํ๋ ค๊ณ ํ๋ ๋ชฉํ์ธ KNN๊น์ง ๋์ฐฉํ์ต๋๋ค.
์ฌ๋ฌ๊ฐ์ง ๊ฐ๋ ๋ค์ ๋ฐฐ์ด๋ค๊ณ ๊ณ ์ํ์ จ์ผ๋ ์ผ๋จ ์จ ํ๋ฒ ์ฌ๊ณ ๊ฐ์๋ค.
KNN์ ๋งค์ฐ ์ง๊ด์ ์ด๊ณ ์ฝ์ต๋๋ค.
ํน์ง์ด ์๋๋ผ ๋ฐฐ์ฐ๊ธฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
KNN์ ๋ง ๊ทธ๋๋ก K๊ฐ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฐ์ดํฐ๋ค์ ์ด์ฉํ์ฌ ํด๋น ๋ฐ์ดํฐ์ ๊ฐ์ ๋ถ๋ฅํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ๊ทธ๋ฆผ์ ๋ํ๋ด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
โ๏ธ Algorithm
KNN์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ๋ ๊ณผ์ ์ ์์๋ณด๊ฒ ์ต๋๋ค.
1. Prepare training data with their class labels (a.k.aReference vector)
๊ฐ๊ฐ ํด๋์ค๊ฐ ๋ถ๋ฅ๋์ด ์๋ Train data๋ฅผ ๋ถ๋ฌ์ต๋๋ค.
ํด๋น Train data๋ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์์๋ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ๋ ๋ฐ์ ์ฌ์ฉ๋ฉ๋๋ค.
2. New test data has come (without its class label)
์๋ก์ด ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํฉ๋๋ค.
์ด๋ ํ ์คํธ ๋ฐ์ดํฐ๋ ์ด๋ ํ ํด๋์ค๋ก ๋ถ๋ฅ๋์ด ์์ง ์์์ผ ํฉ๋๋ค.
3. Calculate distance from the test data and all training data
Test data๋ก๋ถํฐ Train data์ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ ํฉ๋๋ค.
4. Select the nearest k neighbors
๋ช ๊ฐ์ ๋ฐ์ดํฐ์ ๊ฐ๊น์ธ ๋ ํด๋น Test data๋ฅผ ํด๋์ค ๋ถ๋ฅํ ๊ฒ์ธ์ง ์๊ธฐ์ํด k๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
5. Voting from the k neighbors
Test data์ ๊ฐ์ฅ ๊ฐ๊น์ด Train data๋ค์ ์ ํํ๊ณ ์ ํ๋ ์งํ๋ค์ด ๋ ๋ง์ด ํฌํจ๋ ํด๋์ค๊ฐ ์ด๋ค ํด๋์ค์ธ์ง ํ์ธํฉ๋๋ค.
์ด๋ ๋ ๋ง์ด ํฌํจ๋ ํด๋์ค๋ฅผ Test data์ ํด๋์ค๋ก ๊ฒฐ์ ํฉ๋๋ค.
๐ K์ ๋ฐ๋ฅธ Test Data์ ๋ถํฌ
K๊ฐ ํด ๋๋ ๋ฏผ๊ฐํ์ง๋ ์์ง๋ง ๊ฒฝํฅ์ ๋งค์ฐ ์ ๋ง์ถ ์ ์์ต๋๋ค.
๋ฐ๋๋ก K๊ฐ ์์ ๋๋ ๋งค์ฐ ๋ณต์กํ ๋ชจ๋ธ์ ์์ฑํ์ง๋ง ๋๋ฌด ๋ฏผ๊ฐํ๊ธฐ ๋๋ฌธ์ ์๋ก์ด Test ๋ฐ์ดํฐ๊ฐ ๋ค์ด์์ ๋ ์ค๋ถ๋ฅํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์ ์ ํ ํด๋ต์ ์ฐพ๊ธฐ ์ํด์๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ํด๋ณด๊ณ Error๊ฐ ๊ฐ์ฅ ์ ์ k๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
๋ํ ๊ฐ์ ๋ถํฌ์๋ง ์ง์คํ์ง ์๊ณ ๊ฐ๊ฐ์ ๋ฐ์ดํฐ์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ ๊ฐ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
'AI > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] Ensemble Method(2) - Bagging & Random Forest (0) | 2022.11.26 |
---|---|
[ML] Ensemble Method(1) - ํธํฅ-๋ถ์ฐ ๋๋ ๋ง(Bias-Variance Dilemma) (0) | 2022.11.26 |
[ML] Nearest Neighbor Method - ์ ๊ทํ(Normalization)(2) (0) | 2022.11.11 |
[ML] Nearest Neighbor Method - Distance Metric(1) (0) | 2022.11.11 |
[ML] Regression(ํ๊ท)(3) - Logistic Regression(๋ก์ง์คํฑ ํ๊ท) (0) | 2022.11.11 |