본문 바로가기
ML | DL/머신러닝 이론|실습

k-최근접 이웃(KNN, K-Nearest Neighbor) 이론 설명

by Leeys 2020. 10. 30.
반응형

*제가 이해한 내용을 정리한 것입니다. 틀린것이 있다면 지적해주세요!

 

KNN이란 ?

- k개의 가까운 이웃을 보고 클래스를 판별한다. 게으른 학습기라고 불리며 훈련데이터를 함수로 판별하는 것이 아닌 데이터셋을 메모리에 저장후 판별

 

 

KNN

 

KNN은 유명하고 매우 간단한 알고리즘이다. 새로운 데이터가 '?' 이면 그 안에서 가장 가까운애들중 가장 많은 변수를 찾는 것이다. 이 그림을 보면 세모 1등, 동그라미 네모 공동 2등이므로 세모를 선택하는 것이다.

k에 값을 줄때는 동점을 방지하기 위해 홀수값을 주는게 정석이다.

만약 짝수값을 입력해 동점이 되더라도 그중 가까운애를 1등으로 한다.

거리를 구하는 방식은 '맨하탄 거리', '유클리디안 거리', '민코우스키 거리'인데 민코우스키 거리가 가장 일반화가 되어 있다고 한다. 

 

KNN으로 모델을 학습하려면 중요한 것이 있다.

먼저 데이터셋을 표준화 시켜야한다. 예를들어 변수 두개가 있다고 하자, A변수는 1~10까지 분포되있고 B변수는 10000~ 100000 까지 분포되어 있으면 높은 값 B변수에 묻혀 거리를 제대로 구할수가 없어질 것이다.

반응형

댓글