K-최근접 이웃 (K-Nearest Neighbor)

컴퓨터과학·AI
한 줄 정의: 새로운 데이터가 주어졌을 때, 가장 가까운 K개의 기존 데이터를 살펴보고 그중 다수가 속한 범주로 분류하는 알고리즘입니다.

쉽게 풀면

낯선 동네로 이사와서 "여기가 부자 동네일까?"를 판단한다고 해봅시다. 가장 쉬운 방법은 우리 집과 가장 가까운 이웃집 5곳을 둘러보고, 그중 대부분이 큰 집에 좋은 차를 가지고 있다면 "여기도 부자 동네겠구나"라고 추측하는 것입니다. K-최근접 이웃은 정확히 이런 방식으로 작동합니다. 새 데이터가 들어오면 별도의 복잡한 학습 과정 없이, 기존 데이터 중 가장 "가까운" K개를 찾아 그들의 다수결로 분류를 결정합니다. K는 몇 명의 이웃을 볼지 정하는 숫자로, K=3이면 가장 가까운 3개를 보고 다수결을 취합니다.

왜 중요한가

K-최근접 이웃은 별도의 복잡한 학습 과정이나 가정 없이도 작동하는 직관적인 방법이라, 새로운 분류·회귀 기법의 성능을 비교하는 베이스라인으로 널리 쓰입니다. 또한 추천시스템, 이상치 탐지, 의료 진단 보조 등 "비슷한 사례를 참고해 판단한다"는 논리가 자연스러운 응용 분야에서 실제 모델로도 자주 채택됩니다.

논문에서는 이렇게 쓰입니다

"본 연구에서는 K=5로 설정한 K-최근접 이웃 알고리즘을 베이스라인 분류기로 사용하였다."

이 문장은 연구자가 복잡한 모델과 성능을 비교하기 위해, 가장 가까운 5개의 데이터를 참고해 분류하는 단순한 방법을 기준선으로 삼았다는 뜻입니다.

"환자의 임상 지표를 바탕으로 K-최근접 이웃 알고리즘을 적용하여 유사한 증상을 보인 과거 환자들의 진단 결과를 참고하도록 하였다."

의료 데이터 분석에서 유사 사례 기반 진단 보조 시스템을 설명할 때 쓰이는 표현이다.

"협업 필터링 기반 추천시스템에서 사용자 간 유사도를 계산한 후 K-최근접 이웃 방식으로 선호도가 비슷한 사용자 집단의 평점을 참고하였다."

추천시스템 연구에서 사용자 기반 협업 필터링의 핵심 원리를 설명하는 예문이다.

조금 더 깊게 보면

K값 설정에는 일반적인 정답이 없으며, K가 너무 작으면 이상치에 민감해지고 K가 너무 크면 지역적인 패턴을 놓치기 쉬워 교차검증을 통해 적절한 값을 탐색하는 경우가 많습니다. 거리 계산에는 유클리드 거리 외에도 맨해튼 거리, 코사인 유사도 등이 데이터 특성에 따라 선택되며, 이웃마다 가까운 정도에 가중치를 다르게 부여하는 가중 K-최근접 이웃 방식도 흔히 사용됩니다. 고차원 데이터에서는 거리 개념 자체가 무의미해지는 차원의 저주 문제로 성능이 저하될 수 있어 차원축소를 함께 적용하기도 합니다.

주의할 점

K-최근접 이웃은 새로운 데이터마다 전체 데이터와의 거리를 다시 계산해야 하므로, 데이터가 많아질수록 예측 속도가 느려집니다. 또한 거리를 재는 방식에 따라 결과가 크게 달라지므로, 각 특성의 단위와 범위를 맞추는 전처리가 중요하며, 두 데이터가 얼마나 비슷한지를 판단할 때 코사인 유사도 같은 다른 척도를 쓰기도 합니다.

관련 용어