K-NN알고리즘

2023. 8. 25. 00:18컴퓨터/데이터활용

k-최근접 이웃 알고리즘은 새로운 데이터로부터 가장 가까운 k개의 기존 데이터를 찾아 가장 많이 분류된 값을(다수결) 현재의 데이터로 분류하는 알고리즘입니다.

 

출처:wikipedia k-nearest neghibors algorithm

위 예시에서는 k값을 반지름으로 하는 원이 실선으로 정해져 있으니 원 안에 가장 많은 수를 차지하는 세모로 데이터가 분류된니다.

즉, k-nn 알고리즘은 k의 값과 중심점에 따라 지도학습의 결과가 크게 차이날 수 있습니다..

k의 값이 너무 작으면 과대적합(overfitting)이 될 확률이 높고, k가 너무 크면 과소적합(underfitting)이 될 확률이 높습니다..

k의 값이 너무 작으면 학습데이터가 적어서 작은 차이로도 결과가 나오기 때문에 결과를 근시안적으로만 바라볼 수 있습니다. 

또 k의 값이 너무 크면 특징이 너무 많이 들어와 있어 학습의 가중치가 작아져 언더피팅이 될 수 있습니다.

 

  1. 새로운 데이터 입력
  2. 거리 계산하기(점과 점 사이 거리 공식)
  3. k개의 이웃 찾기
  4. 이웃 레이블에 기반한 데이터 분류

위 순으로 k-nn 알고리즘이 진행됩니다.

여러 개의 가능한 레이블 중 하나로 분류될 수 있기 때문에 knn알고리즘은 다중 분류에도 탁월합니다.