어떤 데이터가 주어졌을 때, 해당 데이터에 (거리 기준) 가장 근접한 k개의 데이터의 레이블에 따라 해당 데이터의 레이블을 예측하는 알고리즘.

그렇다면 k는 몇으로 정해야 하는가?
또 거리는 어떻게 측정해야 하는가?
유클리드 거리

맨해튼 거리:

knn 알고리즘은 기본적으로 거리 기반이기 때문에 단위의 영향을 크게 받음. 따라서 표준화 필수
sklearn.neighbors.KNeighborsClassifiersklearn.neighbors.KNeighborsRegressor
from sklearn.neighbors import KNeighborsClassifier
model_knn = KNeighborsClassifier()
model_knn.fit(X,y)
y_knn_pred = model_knn.predict(X)
get_score('knn',y,y_knn_pred)
# knn acc 스코어는: 0.826 f1_score는: 0.76