정의
데이터들 간의 거리를 측정해 가장 가까운 K개의 데이터셋의 레이블을 참조해 분류/예측한다.
거리 측정 방식
기본 구현
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(x_train_scaled, y_train)
Pipeline, GridSearch를 통한 구현
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV
pipeline = Pipeline([('scaler', StandardScaler()),
('knn', KNeighborsClassifier())])
params = {
'knn__n_neighbors':range(1,11),
'knn__p':[1,2]
}
gs = GridSearchCV(pipeline,
param_grid=params,
scoring='accuracy',
cv=4,
n_jobs=-1)
gs.fit(x_train, y_train)