K-Nearest Neighbors

태그: K-Nearest Neighbors

이 태그가 포함된 글들입니다. (총 1개)

k-최근접 이웃

k-최근접 이웃 (k-Nearest Neighbors, k-NN) #

k-최근접 이웃(k-Nearest Neighbors, k-NN)은 가장 직관적이고 단순한 기계학습 알고리즘 중 하나이다. 새로운 데이터 포인트를 분류할 때, 훈련 데이터에서 가장 가까운 k개의 이웃들의 클래스를 참고하여 다수결 투표로 분류를 결정한다. k-NN은 “게으른 학습(lazy learning)” 또는 “인스턴스 기반 학습(instance-based learning)“이라고도 불린다.

k-NN의 기본 개념 #

1. 게으른 학습 (Lazy Learning) #

  • 훈련 단계: 실제 모델 학습 없이 데이터를 메모리에 저장만 함
  • 예측 단계: 새로운 데이터가 들어올 때 비로소 계산 수행
  • 모델 없음: 명시적인 모델이나 가중치를 학습하지 않음

2. 인스턴스 기반 학습 (Instance-based Learning) #

  • 일반화된 모델 대신 구체적인 훈련 인스턴스들을 기반으로 예측
  • 지역적 근사를 통한 분류
  • 새로운 데이터와 유사한 과거 데이터를 찾아 예측

k-NN 알고리즘의 작동 원리 #

1. 분류 과정 #

  1. 거리 계산: 새로운 데이터 포인트와 모든 훈련 데이터 간의 거리 계산
  2. 이웃 선택: 가장 가까운 k개의 이웃 선택
  3. 투표: k개 이웃들의 클래스 중 가장 많은 클래스로 분류
  4. 예측: 다수결 결과를 최종 예측값으로 반환

2. 회귀에서의 k-NN #

분류 대신 회귀에서는 k개 이웃들의 값의 평균을 예측값으로 사용한다: