MachineLeaning

K - Nearest Neighbor

MathematiciantoDatascientist 2021. 8. 30. 00:21

K - Nearest Neighbor 는 특정 기준점에서 반경에서 K개를 기준으로 가장 많은 class 를 분류해주는 방법이다.

 

(Majority Voting 에 근거한 방법이겠지?)

 

K 를 직접 설정 해야 한다는 점에서 약간의 불편함이 존재할 수 있고, 어떤 K 를 설정했느냐에 따라 너무 큰 경우 경계가 세분화 되지 않고, 너무 작은 경우 Outlier 의 영향력이 커지고, Overfitting 이 가능하기에 조심해서 선택하는 것이 좋다.

 

Target Value (Label) 의 값의 유형 별 처리

 

1. Categorical Variable

 

- 가장 많이 나타나는 Class 를 y 로 추정

- K 는 홀수로 정하는 것이 tie 문제에 유용하다.

 

2. Continuous Variable

 

- 대표값(평균) 을 기준으로 y 추정

- Inverse distance weighted average (거리가 커질수록 weight 를 작게 주는 방법)

 

Distance 를 구하는 방법으로는 Euclidean distance, Manhatten distance (Continuous Variable), Hamming distance (Categorical Variable) 의 경우

 

간단하게 정리해보면 Classification 에 대한 문제에 사용한다면

 

Categorical Variable 의 target value 를 갖고있다고 가정하자.

 

m = 1, ... , M

근처 K개 중 가장 많은 범주를 선택하는 것이 이 방법의 목표이다.

K개를 기준으로 그 반경 안에서 가장 많은 class 의 값을 구하는 과정.

 

Continuous Variable 의 경우에서는 그 근처의 K개의 평균을 선택한다.

Overfitting --> 이 경우 Cross - Validation 을 사용할 수 있고, K를 for loop 로 변경하면서, error 값을 보며 최적의 K를 찾아야 한다.

KNN.pdf
0.59MB
KNN Regression.ipynb
0.00MB
KNN.ipynb
0.11MB