KNN(K-최근접 이웃)의 투표 원리

40 P
QUESTION 03 #349
가장 가까운 K개의 이웃 중 가장 많은 라벨을 선택하는 KNN의 의사결정 과정을 완성하세요.
main.py
from collections import Counter

def knn_vote(neighbor_labels):
    # 이웃들의 라벨 중 가장 빈도가 높은 것을 추출
    counter = (neighbor_labels)
    most_common = counter.(1)
    return most_common[0][0]

# 가장 가까운 3명의 이웃이 각각 ['액션', '로맨스', '액션'] 일 때
neighbors = ['액션', '로맨스', '액션']
final_genre = knn_vote(neighbors)

print(f"최종 추천 장르: {final_genre}") # 결과: 액션
실행 결과 예시
Counter, most_common
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

🗳️ 유유상종의 논리: KNN

K-Nearest Neighbors(KNN)는 "유유상종"이라는 고사성어를 그대로 알고리즘화한 것입니다.

  • K의 의미: "내 주변에 가장 가까운 이웃 몇 명을 볼 것인가?"를 정하는 숫자입니다.
  • 다수결 원칙: 만약 K=3이라면, 주변 3명 중 2명이 좋아하는 영화를 나에게도 추천하는 방식입니다.

이 방식은 복잡한 학습 과정 없이도 매우 직관적이고 강력한 분류 능력을 보여줍니다.