데이터로부터 거리가 가까운 k개의 다른 데이터를 선택하는 알고리즘
데이터와 다른 데이터 사이의 거리를 측정할 때, 유클리드 거리 등 거리계산 metric을 활용
model based learning이 아닌 lazy model
k값과 거리 측정 방법이 가장 중요한 hyperparameter
훈련이 없기 때문에, 빠르게 학습 가능한 알고리즘
수치 기반 데이터에서 우수한 성능을 나타내는 알고리즘 (거리 기반 알고리즘이기 때문)
단순하고 효율적
명목 또는 더미 데이터를 처리하기 어렵다
변수가 많은 데이터는 처리 속도가 느리고 정확도가 많이 떨어진다
적절한 k를 선택하는 것이 어렵다
변수를 이해하는 알고리즘이 아니며, label과의 관계 파악 등 설명력이 떨어진다
각 변수마다 스케일이 다른 경우 동일한 거리 척도를 사용하기 어렵다
Logistic Regression은 종속변수와 독립변수가 선형상관관계가 있을 것이라는 것을 가정한 상태에서 진행 (Parametric)
Knn은 그런 가정이 없기 때문에 조금 더 다이나믹.
knn은 속도가 더 느림. 결과만 제시.
Logistic regression은 주는 정보가 많고, 속도가 빠름.