KNN(K-Nearest Neighbors, K-최근접 이웃) 알고리즘은 지도 학습(Supervised Learning)에서 사용되는 간단하면서도 효과적인 분류(Classification) 및 회귀(Regression) 방법이다.
1. 기본 개념
KNN은 새로운 데이터가 주어졌을 때, 가장 가까운 K개의 데이터를 찾아 다수결(분류) 또는 평균(회귀) 방식으로 예측을 수행한다. 즉, 새로운 샘플이 어떤 클래스에 속할지를 결정할 때, 기존 데이터 중 가장 가까운 K개의 샘플을 참고하는 방식이다.
2. 작동 원리
- 데이터셋에서 새로운 데이터와 기존 데이터 간의 거리를 계산한다. 일반적으로 유클리드 거리(Euclidean Distance)가 가장 많이 사용되지만, 맨해튼 거리(Manhattan Distance), 코사인 유사도(Cosine Similarity) 등도 활용될 수 있다.
- 가장 가까운 K개의 데이터를 찾는다.
- 분류(Classification): K개의 데이터 중 가장 많이 속한 클래스로 새로운 데이터를 분류한다. (다수결 방식)
- 회귀(Regression): K개의 데이터의 평균을 계산하여 예측 값을 결정한다.
아래의 그래프를 참고해보자
분홍색 동그라미와 하늘 =색 세모가 train_input을 주어 졌을 때 파란색 다이아 모양의 데이터가 속하는 클래스를 찾고 싶다.
이때 K = 3이라고 가정하면 최근접한 3개의 데이터를 다수결로 하여 클래스를 유추한다.
따라서 위의 그림에서는 파란색 다이아를 분홍 동그라미 클래스에 속한다고 예측한다.
KNN Classification에서는 다수결을 원칙으로 하므로 짝수인 K는 피하는 편이다.
회귀의 경우 근접한 K개의 데이터의 평균값을 사용한다.
3. 하이퍼파라미터
- K 값: K 값이 너무 작으면(예: K=1) 노이즈에 민감해져 과적합(Overfitting)될 가능성이 크고, 너무 크면(예: K가 매우 큼) 경계가 흐려져 성능이 떨어질 수 있다. 따라서 적절한 K 값을 찾기 위해 교차 검증(Cross Validation)을 사용한다.
- 거리 측정 방법: 유클리드 거리(Euclidean Distance), 맨해튼 거리(Manhattan Distance), 또는 가중 거리(Weighted Distance) 등을 선택할 수 있다.
- 가중치 적용: K개의 이웃 중 거리가 가까운 데이터에 더 높은 가중치를 부여하여 예측을 정교화할 수도 있다.
4. 장점과 단점
- 장점
- 이해하기 쉽고 구현이 간단함
- 비선형 데이터에 강함 (결정 경계가 곡선일 때도 잘 작동)
- 훈련(Training) 과정이 필요 없음 (모든 데이터를 저장하고 활용하는 방식, 모델 파라미터가 존재하지 않음)
- 단점
- 연산량이 많음 (새로운 데이터가 들어올 때마다 모든 데이터와 거리를 계산해야 함)
- 고차원 데이터에서 성능 저하 (차원의 저주, Curse of Dimensionality 발생 가능)
- 모든 데이터가 메모리에 저장되어야 하므로 메모리 사용량이 많음
5. 활용 분야
- 이미지 인식(Image Recognition)
- 추천 시스템(Recommendation System)
- 이상 탐지(Anomaly Detection)
- 의료 진단(Medical Diagnosis)
KNN은 데이터가 적고 연산 성능이 충분할 때 강력한 성능을 발휘하지만, 데이터가 많아지면 연산 비용이 급격히 증가하는 단점이 있다. 따라서 대규모 데이터에서는 KD-Tree, Ball Tree와 같은 공간 분할 기법을 활용하거나, 차원 축소(예: PCA)를 통해 성능을 최적화할 수 있다.
KNN Classification Sample Code
KNN Regerssion Sample Code
'ML & DL' 카테고리의 다른 글
[지능형 시스템] 학자 별 인공지능의 정의 (0) | 2025.03.09 |
---|