본문 바로가기
ML & DL/Machine Learning

[ML] KNN(K-Nearest Neighbor)

by 홍월이_ 2022. 12. 12.

K-최근접 이웃(KNN)

  • 지도 학습 알고리즘 중 하나, 굉장히 직관적이고 간단하다.
  • 어떤 데이터가 주어지면 그 주변(이웃)의 데이터를 살펴본 뒤 더 많은 데이터가 포함되어 있는 범주로 분류하는 방식
  • KNN은 분류와 회귀 문제 둘다 사용할 수 있다.

KNN Classification

  • 새로운 데이터(빨간 점) 이 주어졌을 때 이를 A로 분류할지, B로 분류할지 판단하는 문제
  • k=3(안쪽 원)일 때, 노란색 점(Class A) 1개와 보라색 점(Class B) 2개가 있다. 따라서 k=3일 때 빨간 점은 B로 분류 된다.
  • k=6(바깥쪽 원)일 때, 노란색 점 4개와 보라색 점 2개가 있으므로 노란색 점으로 분류된다.
  • K의 값에 따라 결과가 달라지므로 너무 작아서도 안되고 너무 커서도 안된다.
  • 보통 K 값은 홀수를 사용한다. 짝수일 경우 동점이 발생할 수가 있어 결과를 도출할 수 없기 때문이다.

거리 계산

  • KNN 에서는 데이터와 데이터 사이의 거리에 따라 결과가 달라질 수 있다.
  • 데이터의 스케일에 따라 큰 영향을 받기 때문에 데이터 전처리가 필요함

1. Euclidean Distance

일반적인 점과 점사이의 거리를 구하는 방법이다.

3차원에서 유클리드 거리 구하는 예시

2. Manhattan Distance

점과 점 사이의 직선 거리가 아니라 X축과 Yㅊ푹을 따라 간 거리를 의미한다.

아래 예시의 Route 1, Route 2, Route 3은 서로 다른 길이지만 맨해튼 거리로는 같다.

KNN Regression

  • KNN 회귀 모델은 분류와 동일하게 가까운 k개의 이웃을 찾는다.
  • 그 다음 이웃 샘플 타깃값의 평균을 구하여 예측값으로 사용한다.
  • Scikit Learn은 회귀 모델의 점수로 결정계수 값을 반환한다.

댓글