본문 바로가기

공부/Machine Learning

[KNN] 2. K-Nearest Neighbor (K 최근접 이웃)

[KNN] 2. K-Nearest Neighbor (K-최근접 이웃 알고리즘)



KNN 의 정의



KNN 이라 함은,


K개의

Nearest (가장 가까운)

Neighbor (이웃)

이라고 정의할 수 있습니다.

이것이 어떤 말이냐 하면, 

어떠한 임의의 새 데이터 t 가 있을때, 기존의 데이터들 중에서 t까지의 거리가 가장 가까운 k개의 데이터를 순서대로 선택하여, 

그 선택받은 데이터들의 라벨에 따라 t의 라벨이 결정될 수 있다는 것입니다.



그림으로 보면 더 이해가 쉽게 됩니다.

먼저 위와 같은 데이터들이 검은색과 파란색의 라벨을 가지고 분포한다고 가정합니다.




이 때, 빨간색의 새로운 데이터가 분포에 추가됩니다.

우리가 궁금한것은, 과연 이 새로운 데이터가 검은색 데이터로 분류될 것인가, 파란색 데이터로 분류될 것인가 입니다.




KNN알고리즘에 따라 먼저 K=1로 가정한 경우입니다.

이 말은 다시말해, 새로운 데이터로부터 거리가 가장 가까운 1개의 데이터를 선택하여 분류기준으로 쓴다는 뜻입니다.

이 때, 선택된 1개의 데이터는 검은색 라벨을 가진 데이터 입니다.




따라서 새롭게 들어온 데이터는 KNN 알고리즘에 따라 K=1일때 검은색 라벨을 가진 데이터로 분류됩니다.




조금 다른 경우를 볼까요?

이번엔 K=3으로 가정해봅니다.

다시말해, 새로운 데이터로부터 거리가 가장 가까운 3개의 데이터를 선택하여 분류기준으로 쓴다는 뜻입니다.

이 떄, 선택된 3개의 데이터의 집합은, 검은색 1개 + 파란색 2개 입니다.





따라서 새롭게 들어온 데이터는 KNN 알고리즘에 따라 K=3일때 파란색 라벨을 가진 데이터로 분류됩니다.




정리하자면,

KNN은 기존의 데이터 중 가장 유사한(가까운 거리의) K개의 이웃 데이터들을 이용하여 새로운 데이터를 예측하는 방법

데이터의 특징에 따라서 예측하는 방법의 차이는,

수치형 데이터 

K 개의 이웃 데이터의 평균 

명목형 데이터

K개의 데이터에서 majority voting(다수결) 혹은 가중치를 추가해 선택


다음 포스팅에서는,

K를 어떻게 정의할 것인가,

거리는 어떠한 기준으로 정할 것인가,

에 대하여 알아보겠습니다.