k-NN은 확보하고 있는 data와 가까이 위치한 이웃 data들을 기반으로 새로운 데이터를 예측하는 방법입니다. 이름이 알려주듯이 새로운 data의 주변에 있는 k개의 이웃들과 비교를 함으로써 새로운 데이터를 분류하거나 값을 예측합니다. 확보하고 있는 데이터를 활용하기 때문에 이전에 소개했던 방법들과 같은 학습이 필요하지는 않습니다. k-NN에서는 data간 거리를 계산해서 가까운 정도를 판단하는데, 여기서는 유클리드 거리를 이용해서 거리 값을 계산했습니다. 거리를 계산할 때는, 각 data가 가지고 있는 descriptor 값을 이용해서 data간 거리를 계산하게 됩니다.
1. Classification
<그림1. Classification data distribution>
Descriptor 값에 의해 표현된 공간을 descriptor space라고 합니다. 그림 1에서는 descriptor space상에서 데이터의 분포를 보여주고 있습니다. 파란색은 Negative, 초록색은 positive data이고, 빨간 색은 분류되지 않은 새로운 데이터입니다. Descriptor space에서 빨간 색 data와 가까운 데이터를 기반으로 빨간 색 data를 분류하게 됩니다. 예를 들어, 3-NN이라고 하면, 가장 가까운 3개의 이웃들의 class를 비교해서 그 중 다수의 class로 분류를 해주게 됩니다 (그림2)
<그림2. 3-NN classification 결과>
2. Regression
<그림3. Regression data distribution>
k-NN을 이용해서 regression을 하는 경우, 가까운 거리에 있는 data가 갖고 있는 실험 값들의 평균값으로 새로운 data의 값을 예측하게 됩니다. 새로운 data와 이웃간의 거리에 대한 역수를 weight로 사용해서 예측을 하는 방법도 있습니다.
<그림 4. 4-NN regression 예시 (거리의 역수를 weight로 사용)>
참고자료
본 기사는 네티즌에 의해 작성되었거나 기관에서 작성된 보도자료로, BRIC의 입장이 아님을 밝힙니다. 또한 내용 중 개인에게 중요하다고 생각되는 부분은 사실확인을 꼭 하시기 바랍니다.
[기사 오류 신고하기]