본문 바로가기

🤖AI/머신러닝

[머신러닝] KNN (K-Nearest Neighbor)

KNN

KNN은 지도 학습 알고리즘 중 하나이다.

어떤 데이터가 주어지면 그 주변(이웃)의 데이터를 살펴본 뒤 더 많은 데이터가 포함되어 있는 범주로 분류한다.

K의 default값은 5이다. 가장 가까운 주변 5개 데이터를 기반으로 분류한다는 것이다.

일반적으로 K는 홀수를 사용한다. 짝수일 경우 동점이 되어 하나의 결과를 도출할 수 없기 때문이다.

Lazy Model

KNN의 특징은 훈련이 따로 필요 없다는 것이다. 다른 모델들은 clf.fit(x_train, y_train)의 코드를 통해 훈련시킨다. 즉 훈련데이터를 기반으로 모델을 만들고 테스트 데이터로 테스트를 하는 방식이다. 하지만 KNN은 훈련이 따로 필요 없다. 그냥 훈련 데이터를 저장하는게 훈련의 전부이다. real-time 예측이 이루어진다. 모델을 별도로 구축하지 않는다는 의미로 게으른 모델(Lazy model)이라고 부른다. 따라서 SVM이나 선형 회귀보다 빠르다.

 

참고: https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-6-K-%EC%B5%9C%EA%B7%BC%EC%A0%91%EC%9D%B4%EC%9B%83KNN