1. k - 최근접 이웃 (KNN, K-Nearest Neighbors)
ㅇ 머신러닝 알고리즘 중 가장 직관적이고 이해하기 쉬운 방법론 중 하나
- 데이터 간의 거리(또는 유사도)를 기준으로 판단하는 방식으로,
- 이해하기 쉽고 구현도 간단함
2. KNN의 기본 원리
ㅇ 새로운 샘플(데이터 포인트)이 주어지면,
ㅇ 기존 학습 데이터 중에서 이와 가장 가까운 k개의 이웃(Nearest Neighbors)을 찾음
- 통상, 거리 또는 유사도 척도를 사용함.
- 여기서, k는 사용자가 미리 지정하는 하이퍼파라미터 임
ㅇ 선택된 이웃들의 특성을 바탕으로, 새로운 샘플의 결과를 예측함
- 분류의 경우 : k개 이웃 중 가장 많이 등장한 클래스를 선택
- 회귀의 경우 : k개 이웃의 평균값 또는 가중 평균값을 예측값으로 사용
3. KNN의 특징
ㅇ 단순하고 직관적임
- 데이터 간의 거리 계산으로, 가장 가까운 이웃들 기준에 의해 예측하므로, 이해나 구현이 간단
ㅇ 지도 학습법의 일종
- 학습 데이터(입력-출력 쌍)를 기반으로, 새로운 입력이 주어졌을 때,
- 기존 데이터 중 가장 가까운 k개 이웃의 레이블을 참조하여 결과를 예측함
ㅇ 게으른 학습법 (Lazy Learning)
- 모델 학습 단계에서는, 별도의 일반화 과정을 수행 않음
. 훈련 데이터는 단순히 저장만 하고, 새로운 입력이 들어올 때 만,
. 비로소 거리 계산 및 분류(또는 회귀) 연산을 수행함
- 따라서, 학습은 빠르지만, 예측 시 계산량이 많아서, 속도가 느릴 수 있음.
- 반대로, 선형 회귀나 SVM 같은 학습법은, 미리 일반화된 모델을 학습하므로,
. 적극적 학습법(Eager Learning)에 해당함
ㅇ 비모수적 방법으로, 데이터 확률분포에 대한 가정을 거의 하지 않음
- 데이터의 발생 확률분포 형태에 대한 사전 가정이 필요 없음
ㅇ 분류와 회귀 모두에서 사용 가능
- 분류 : k개 이웃 중 가장 많이 등장한 클래스를 선택
- 회귀 : k개 이웃의 평균값 또는 거리 기반 가중 평균값을 예측값으로 사용
ㅇ k 값 선택에 따라 성능이 달라질 수 있음 ☞ 아래 4.항 참조
ㅇ 계산 비용이 높을 수 있음
- 새로운 데이터가 들어올 때마다 모든 학습 데이터와의 거리 계산이 필요하므로,
- 데이터가 많을수록 예측 단계의 계산 비용이 급증함
4. k 값의 의존성
ㅇ k 값이 너무 작으면 : 잡음에 민감해질 수 있음 (과적합)
ㅇ k 값이 너무 크면 : 모델이 부드러워지지만 세부적인 특징을 놓칠 가능성 있음 (과소적합)
ㅇ 홀수 k 값을 사용하면 : 분류에서 동점(타이)을 방지할 수 있음