KNN
K-Nearest Neighbors (KNN)은 지도 학습(Supervised Learning) 알고리즘 중 하나로, 분류(Classification)와 회귀(Regression) 모두에 사용될 수 있다. 새로운 데이터 포인트의 클래스 또는 값을 예측하기 위해 기존 데이터 포인트들 중 가장 가까운 K개의 이웃(neighbors)을 고려한다. 즉, 새로운 데이터 포인트와 가장 유사한 K개의 데이터 포인트의 클래스(분류) 또는 값(회귀)을 기반으로 예측을 수행한다.
알고리즘 동작 방식
-
거리 계산: 새로운 데이터 포인트와 기존 데이터 포인트들 사이의 거리를 계산한다. 일반적으로 유클리드 거리(Euclidean distance)가 사용되지만, 맨하탄 거리(Manhattan distance)나 민코프스키 거리(Minkowski distance) 등 다른 거리 측정 방식도 사용 가능하다.
-
K개 이웃 선택: 계산된 거리에 따라 가장 가까운 K개의 이웃을 선택한다. K값은 사용자가 지정하는 매개변수이며, 알고리즘의 성능에 영향을 미친다.
-
예측:
- 분류: K개의 이웃 중 가장 많은 클래스를 새로운 데이터 포인트의 클래스로 예측한다. 동점이 있을 경우, 다양한 방법(예: 무작위 선택, 가중치 부여)을 사용하여 클래스를 결정한다.
- 회귀: K개의 이웃의 값들의 평균 또는 중앙값을 새로운 데이터 포인트의 값으로 예측한다.
장점
- 알고리즘이 간단하고 이해하기 쉽다.
- 별도의 모델 훈련 단계가 필요 없다. 새로운 데이터 포인트가 들어올 때마다 실시간으로 예측을 수행한다.
- 다양한 데이터 유형에 적용 가능하다.
단점
- 계산 비용이 높을 수 있다. 특히 데이터셋이 크고 K값이 클 경우 계산 시간이 오래 걸릴 수 있다.
- K값을 적절하게 선택해야 한다. K값이 너무 작으면 과적합(overfitting)이 발생하고, 너무 크면 과소적합(underfitting)이 발생할 수 있다.
- 차원의 저주(curse of dimensionality)에 취약하다. 특징(feature)의 수가 많아지면 거리 계산의 의미가 떨어지고 성능이 저하될 수 있다.
- 이상치(outlier)에 민감하다. 이상치가 예측 결과에 큰 영향을 미칠 수 있다.
매개변수
- K: 가장 가까운 이웃의 수.
- 거리 측정 방식: 데이터 포인트 간의 거리를 측정하는 방법.
응용 분야
KNN은 패턴 인식, 이미지 분류, 추천 시스템 등 다양한 분야에서 활용된다.