본문 바로가기
TIL/머신러닝

2021.8.29 TIL : [ML] 지도학습 - KNN(K-Nearest Algorithm) 알고리즘

by yeon_zoo 2021. 8. 29.

만약, 우리가 어떤 영화를 분류해야 한다고 가정해보자. 이 영화 외에 여러 영화들을 분석했을 때, 다음과 같은 결과가 나왔다. 우리가 분석해야 하는 영화가 별이라고 하자.

 

KNN 알고리즘은 거리가 가까운 k개의 표본을 보고 k 개 중에 가장 다수를 차지하는 쪽으로 분류하는 것이다. 그래서 먼저 k 값을 정해줘야 하는데, 이 때 k 값은 홀수이면서 작은 값이 좋다. 짝수인 경우는 2대 2와 같은 한 쪽으로 치우치지 않는 결과가 나올 수 있기 때문이다.

 

k = 3 이라고 할 때 위의 예시에서 별에 가까운 영화들을 분석해보면 2개는 액션 영화, 1개는 로맨스영화이다. 따라서 별은 액션 영화다 라고 하는 prediction, 예측을 할 수 있게 된다.  

이 때 별과 다른 neighbor 사이의 거리를 구하는 방법은 피타고라스의 정의를 사용하면 된다. 

시험 삼아 코드를 돌려 보았다! 해당 코드는 여기서 확인할 수 있다. 

댓글