PROGRESS
3 / 7
단원
데이터 구조화: AI 전처리 17
데이터의 규칙: 예측 로직 14
옷의 시너스: 판단 로직 1
예와 아니오: 판단 로직 6
닮은꼴 찾기: 관계 로직 7
최적의 경로: 강화 로직 7
층층이 지능: 신경망 로직 7
전체 목록
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}") # 결과: 액션
HINT
데이터 개수를 세는 클래스와 상위 요소를 가져오는 메서드명을 입력하세요.
실행 결과 예시
Counter, most_common
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
🗳️ 유유상종의 논리: KNN
K-Nearest Neighbors(KNN)는 "유유상종"이라는 고사성어를 그대로 알고리즘화한 것입니다.
- K의 의미: "내 주변에 가장 가까운 이웃 몇 명을 볼 것인가?"를 정하는 숫자입니다.
- 다수결 원칙: 만약 K=3이라면, 주변 3명 중 2명이 좋아하는 영화를 나에게도 추천하는 방식입니다.
이 방식은 복잡한 학습 과정 없이도 매우 직관적이고 강력한 분류 능력을 보여줍니다.