K-Nearest neighbor(KNN) ์๊ณ ๋ฆฌ์ฆ
K ์ต๊ทผ์ ์ด์ ์๊ณ ๋ฆฌ์ฆ
KNN classification
- ์์ธกํ๋ ค๋ ์ํ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ํ k๊ฐ๋ฅผ ์ ํ
- ์ด์ํ ์ํ์ ํ๊น = ์ด๋ค ํด๋์ค
- ์ํ๋ค์ ํด๋์ค๋ฅผ ํ์ธํด ๋ค์ ํด๋์ค๋ฅผ ์๋ก์ด ์ํ์ ํด๋์ค๋ก ์์ธก
- ํ ์คํธ ์ธํธ์ ์๋ ์ํ์ ์ ํํ๊ฒ ๋ถ๋ฅํ ๊ฐ์์ ๋น์จ(=์ ํ๋)๋ก ์ฑ๋ฅ ํ๋จ
KNN regression
- ์์ธกํ๋ ค๋ ์ํ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ํ k๊ฐ๋ฅผ ์ ํ
- ์ด์ํ ์ํ์ ํ๊น = ์์์ ์์น
- ์ด์ ์ํ์ ์์น๋ฅผ ์ฌ์ฉํด ์๋ก์ด ์ํ์ ํ๊น์ ์์ธก = ์์น๋ค์ ํ๊ท
from sklearn.neighbors import KNeighborsRegressor
knr = KNeighborsRegressor()
knr.fit(train_input, train_target)
# ํ
์คํธ ์ธํธ ์ ์. ํ๊น์ด ์์ธก์ ๊ฐ๊น์ธ์๋ก 1์ ๊ฐ๊น์
print(knr.score(test_input, test_target))
๊ฒฐ์ ๊ณ์(coefficient of determination, R2)
$ R^{2} = 1 - \frac{(target - predict)^2}{(target - average)^2} $
- ํ๊น์ด ์์ธก์ ์์ฃผ ๊ฐ๊น์์ง๋ฉด 1์ ๊ฐ๊น์ด ๊ฐ
- R2์ด ์ผ๋ง๋ ์ข์์ง ์ง๊ฐ์ ์ผ๋ก ์ดํด๊ฐ ์ด๋ ค์ โ MSE(mean absolute error) ๊ณ์ฐ. ํ๊น๊ณผ ์์ธก์ ์ ๋๊ฐ ์ค์ฐจ๋ฅผ ํ๊ท ํด ๋ฐํ
from sklearn.metrics import mean_absolute_error
test_prediction = knr.predict(test_input)
mae = mean_absolute_error(test_target, test_prediction)
print(mae)
โ ๋ ๋ง์ ๋ด์ฉ ๋ณด๋ฌ๊ฐ๊ธฐ click click! โ