-
[๊ธฐ๊ณํ์ต] 5. Nearest Neighbor Method๐ณDev/Machine Learning 2021. 12. 20. 16:16
์ถฉ๋จ๋ํ๊ต์ ๊น๋์ผ ๊ต์๋์ ๊ธฐ๊ณํ์ต ์์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.
1. k-Nearest Neighbors Classifier (k-NN)
1. k-Nearest Neighbors Classifier (k-NN)
๊ฐ์ฅ ์ฝ๊ณ ์ง๊ด์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ด์, "๋์ ๋น์ทํ ๋ฐ์ดํฐ๊ฐ ๋๋ฅผ ์ค๋ช ํ๋ค"๋ผ๋ ๋จธ์ ๋ฌ๋์ ๊ธฐ๋ณธ ์ปจ์ ์ ์ ์ค๋ช ํ๊ณ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. k-NN์์ k๋ ๊ฐ์๋ฅผ ์๋ฏธํ๋ฉฐ ๋ช ๊ฐ์ ์ธ์ ์ด์์ ๊ฐ์ง๊ณ ๋น์ทํจ์ ๋ฐ๋ผ ๋ถ๋ฅ๋ฅผ ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค. k-NN์์ ๋น์ทํจ์ ๊ฑฐ๋ฆฌ๋ก ๊ฒฐ์ ํ๋๋ฐ, ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ๊น์ธ ์๋ก ์ ์ฌํ๋ค๊ณ ๊ฐ์ ํ๋ค.
1) Distance Metric
์งํฉ์ ๊ฐ ์์ ์๋ผ๋ฆฌ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๊ฑฐ๋ฆฌ ํจ์๋ค์ ์์๋ณด์.
1. Minkowski distance
Minkowski๋ k๊ฐ์ ๊ฐ์ ํ์ง ์์ ๊ณต์์ ์๋ฏธํ๋ฉฐ, ์๋๋ k๊ฐ์ ๋ฐ๋ผ์ ๊ณต์์ ์ด๋ฆ์ด ๋ฌ๋ผ์ง๋ค.
2. k = 1, Manhattan distance
3. k = 2, Euclidean distance
์ผ๋ฐ์ ์ผ๋ก ์ฐ์ด๋ ๊ณต์์ ์ ํด๋ฆฌ๋์ธ ๊ฑฐ๋ฆฌ์ด๋ฉฐ, ๊ฑฐ๋ฆฌ ๊ณต์์ ๋ช ์ํ์ง ์์์ผ๋ฉด ์ด๋ฅผ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๊ณต์์ ๋ณด๋ฉด, ํํ ์๋ ๋ ์ ์ ์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๊ณต์์ด๋ค.
4. Mahalanobis distance
์ ํด๋ฆฌ๋์ธ ๊ฑฐ๋ฆฌ๋ ๊ฐ๋ค์ ํฌ๊ธฐ์ ์ํฅ์ ๋ง์ด ๋ฐ๋ ๋ฌธ์ ๊ฐ ์์ง๋ง, ๊ณต๋ถ์ฐ์ผ๋ก ๋๋์ด ์ ๊ทํ๋ฅผ ์์ผ์ค ์ ์๋ค. ์ด๊ฒ์ด ๋งํ ๋ผ๋ ธ๋น์ค ๊ฑฐ๋ฆฌ์ด๋ค. ์ด๋ ๋ชจ๋ ๋ณ์๋ค์ ์ํธ ๋ ๋ฆฝ์ ๊ฐ์ ํ ์ํ์์ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์๋ ๋์ ๊ณต๋ถ์ฐ ๊ฐ์, ๋จผ ๊ฑฐ๋ฆฌ์๋ ๋ฎ์ ๊ณต๋ถ์ฐ ๊ฐ์ผ๋ก ๋๋์๋ค. ๋ค์ ๋งํ๋ฉด ํ๊ท 50์ ์ธ ์ํ์์ 70์ ๋ฐ์ ๊ฒฝ์ฐ์ ํ๊ท 80์ ์์ 70์ ๋ฐ์ ๊ฒฝ์ฐ๋ฅผ ํ๋์ ๊ธฐ์ค์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ํ ์ฒ๋ฆฌ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
5. Distance of categorical features
- One hot encoding(One of C coding)
์์ ๊ฐ์ด ์ซ์๊ฐ ์๋ ๊ฐ์ ์ธ์ฝ๋ฉํ๋ค๊ณ ์๊ฐํ์. ๊ฐ ๊ฐ๋ง๋ค ๋๋ฒ๋ง์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ผ๋ฐ์ ์ผ๋ก๋ One Hot Encoding์ ์ฌ์ฉํ๋ค. ์๋๋ฅผ ๋ณด์.
๊ฐ ์นดํ ๊ณ ๋ฆฌ๋ง๋ค ๋ณ์๋ฅผ ์์ฑํ์ฌ, feature์ ํด๋นํ๋ ๋ณ์์ 1์ ๋๋จธ์ง์๋ 0์ ์ ์ฅํ๋ค. ์์ ์์์์ Engineer๋ k๋ฒ์งธ ID์ธ์ ๋ชจ๋ ID๋ 0์ ๊ฐ์ง ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ๋๋จธ์ง 0, ํ๋์๋ง ๋ชฐ์์ 1์ ํ ๋นํ๋ฏ๋ก One Hot์ด๋ผ๋ ์ด๋ฆ์ด ๋ถ์๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๋ณ์ ๊ฐ์ ๋ชจ๋ ๊ฑฐ๋ฆฌ๋ ๋ฃจํธ 2๋ก ํญ์ ๊ฐ์ ๊ฐ์ ์ ์งํ์ง๋ง, ๋ณ์์ ๊ฐ์๊ฐ ๋ง์ด ๋์ด๋๋ ๋จ์ ์ด ์๋ค. ๋ง์ฝ์ ์ด๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด, feature๋ฅผ Ordinal ๋๋ Norminal ๋ณ์์ ๊ฐ์ด ๋ณํํด์ ์ฌ์ฉํด์ผ ํ๋๋ฐ ๊ณ์ฐํ๊ธฐ ์์ฃผ ๋ณต์กํ๋ค!
2) Normalization
๋ณ์๋ค์ ์ค์ผ์ผ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก ์๊ณก์ด ์ธ์ ๋ ๋ฐ์ํ ์ ์๋ค. ๋ฐ๋ผ์ ์ ๊ทํ๋ฅผ ์ฌ์ฉํ๋ค. distance๋ฅผ ๋ค๋ฃฐ ๋๋ ๋ฐ๋์ ์ ๊ทํ๋ฅผ ์ฌ์ฉํด์ผ ํจ์ ์์ง๋ง์.
- z-normalization
- min-max normalization or scaling
3) k-NN
1. Algorithm
- class label์ด ์๋ training data๋ฅผ ์ค๋นํ๋ค
- label์ด ์๋ test data๋ฅผ ์ถ๊ฐํ๋ค
- ๋ชจ๋ training data์ ๋ํด test data์์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค
- ๊ฐ๊ฐ์ test data์ ๊ฐ๊น์ด ์์๋๋ก k๊ฐ์ ์ด์๋ค์ ์ ํํ๋ค
- ์ด์๋ค์ label์ ํ์ธํ์ฌ(vote) ๊ฐ์ฅ ๋ง์ด ๋์จ label์ test data์ label๋ก ๊ฒฐ์ ํ๋ค
2. k์ ๊ฒฐ์
๊ทธ๋ ๋ค๋ฉด k์ ํฌ๊ธฐ๋ ์ด๋ป๊ฒ ๊ฒฐ์ ํ ๊น?
k๋ ์ด์์ด๋ฉด ํ์๋ก, ์ฌ๋์ด ์ฌ๋ฌ ์๋๋ฅผ ํตํด ์ ์ ํ k๋ฅผ ์ค์ ํ๋ค.k๊ฐ ํฌ๋ฉด, smoothing but not sensitive
k๊ฐ ์์ผ๋ฉด, complex but too sensitive3. Lazy Learner
k-NN์ ๊ฒ์ผ๋ฅธ ํ์ต์ด๋ผ๊ณ ๋ถ๋ฆฌ๋๋ฐ ์ด์ ๋ ์๋์ ๊ฐ๋ค. ๋ฐ๋๋ง์ Eager Learner์ด๋ค.
- no training process : ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๊ณ ๋์์ผ ๊ณ์ฐํจ
- reference vectors : ํ์ต๋ชจ๋ธ์ด๋ผ๊ณ ํ๊ธฐ ์ ๋งคํด์ ์ ๋ ๊ฒ ๋ถ๋ฆ
- memory-based reasoning
- time consuming for test process : ํ๊ฐํ๋๋ฐ ์๊ฐ์ด ๋ง์ด ์์, ์ค์๊ฐ์ผ๋ก ๋ถ๊ฐ๋ฅ
4. k-NN Regression
voting ๋์ ์ด์๋ค์ label๊ฐ์ ํ๊ท ์ ๊ตฌํ์ฌ label์ ๊ฒฐ์ ํ๋ค.
4) Summary
- ๊ฐ๊น์ด ์ด์๋ค์ ๊ธฐ๋ฐ์ผ๋ก ์์ธก
- kNN์ ์ต์ ์ ์ฑ๋ฅ์ด classification ์ต์ ์ 2๋ฐฐ๋ผ๊ณ ์ฆ๋ช ๋์ด์์ด - - baseline์ด ๋จ, ์ฆ kNN๋ณด๋ค ์์ข๋ค? ์ฐ์ง๋ง
- ๋งค์ฐ ๊ฐ๋จํจ์๋, ๋น์ ํ ๋ฌธ์ ๋ฅผ ๋ค๋ฃธ
- Lazy Learning
'๐ณDev > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ธฐ๊ณํ์ต] 7. Decision Tree (0) 2021.12.22 [๊ธฐ๊ณํ์ต] 6. Model Evaluation (0) 2021.12.21 [๊ธฐ๊ณํ์ต] 4. Logistic Regression (0) 2021.12.15 [๊ธฐ๊ณํ์ต] 3. Regression (0) 2021.12.14 [๊ธฐ๊ณํ์ต] 2. Bayesian Classifier (0) 2021.12.13