[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를 어떻게 정의할 것인가,
거리는 어떠한 기준으로 정할 것인가,
에 대하여 알아보겠습니다.
'공부 > Machine Learning' 카테고리의 다른 글
[KNN] 3. Hyperparameters (하이퍼파라미터) in KNN (1) | 2018.02.13 |
---|---|
[KNN] 1. Classification (분류) vs Clustering (군집화) (0) | 2018.02.01 |