K-최근접 이웃 모델, KNN(K Nearest Neighbors)
- 종속변수가 범주형이며, 개수가 3개 이상인 다중분류(Multiclassification)을 다룸
- 거리 기반 모델로, 각 데이터 간의 거리를 활용해서 새로운 데이터를 예측
- 다중분류 모델에서 가장 간편히 적용할 수 있는 알고리즘으로 baseline으로 사용
- 주로 분류에 사용되며, 로지스틱 회귀로 해결할 수 없는 3개 이상의 목표 변수들도 분류할 수 있음
- 작은 데이터셋에 적합
장점 | 단점 |
수식에 대한 설명이 필요없을 만큼 직관적이고 간단함 | 데이터가 커질수록 상당히 느려질 수 있음 |
선형 모델과 다르게 별도의 가정이 없음 | 아웃라이어에 취약함 |
코드
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier() # KNN 모델
knn.fit(X_train_scaled, y_train) # 학습
pred = knn.predict(X_test_scaled) # 예측
하이퍼파라미터
- n_neighbors
- weights='uniform': 예측에 사용되는 가중치 함수로 기본값인 uniform은 모든 포인트에 동일한 가중치 부여(uniform, distance, 사용자 정의 함수)
- metric='minkowski': 거리 측정 기준
- n_jobs=None: 실행할 병렬 작업 수
참고: 데싸노트의 실전에서 통하는 머신러닝
반응형