Algorithm

k-NN 알고리즘 요약

Namiz_IT 2024. 10. 23. 14:06
반응형

K-Nearest Neighbors (K-NN) 알고리즘이란?

K-Nearest Neighbors, 줄여서 K-NN 알고리즘은 **지도 학습(Supervised Learning)**의 대표적인 알고리즘 중 하나입니다. 특정 데이터 포인트가 주어졌을 때, 해당 데이터와 가장 가까운 K개의 이웃을 찾고, 이들의 특성을 기반으로 분류(Classification)하거나 예측(Regression)하는 데 활용됩니다. K-NN은 단순하지만 강력한 성능을 제공하며, 이해하기 쉬운 알고리즘으로 초보자부터 전문가까지 널리 사용되고 있습니다.

K-NN의 주요 개념

K-NN은 새로운 데이터 포인트가 들어오면 **거리(Distance)**를 기반으로 가장 가까운 이웃을 찾습니다. 여기서 사용하는 거리 척도는 보통 **유클리드 거리(Euclidean Distance)**가 가장 많이 사용되지만, 맨하탄 거리(Manhattan Distance) 또는 코사인 유사도(Cosine Similarity) 등을 사용할 수도 있습니다.

  • 유클리드 거리는 두 점 사이의 직선 거리로, 연속형 데이터에 적합합니다.
  • 맨하탄 거리는 두 점 간 가로세로 직선 경로의 총 길이로, 이산형 데이터에도 유리합니다.
  • 코사인 유사도는 두 벡터 간의 방향 유사도를 측정해, 텍스트나 고차원 벡터 데이터에 자주 쓰입니다.

K-NN의 동작 방식

  1. K값 선택: 비교할 이웃의 개수를 설정합니다. 일반적으로 홀수로 설정하여 동률을 피하고, 데이터셋의 특성에 따라 적절한 값을 설정합니다.
  2. 거리 계산: 새로운 데이터와 기존 데이터 간의 거리를 계산합니다.
  3. K개의 최근접 이웃 선택: 계산된 거리 값 중 가장 가까운 K개의 데이터를 선택합니다.
  4. 결정 및 예측:
    • 분류 문제(Classification): 다수결 원칙에 따라 이웃 중 가장 많은 클래스를 선택하여 분류합니다.
    • 회귀 문제(Regression): K개의 이웃의 평균값을 구해 예측합니다.

K-NN의 장단점

장점:

  • 단순성: 개념이 간단하고 이해하기 쉽습니다.
  • 비선형 분리 가능: 고차원 공간에서도 효과적입니다.
  • 학습이 필요 없는 Lazy Learning: 모델을 미리 학습할 필요 없이 데이터가 입력되면 바로 결과를 출력합니다.

단점:

  • 연산 비용이 큼: 모든 데이터 포인트 간의 거리를 계산해야 하므로, 데이터가 많아질수록 연산 비용이 높아집니다.
  • 저장 공간 요구: 모든 학습 데이터를 저장해야 하므로 메모리 사용량이 큽니다.
  • K값 선택: K값에 따라 성능이 달라지며, 최적의 값을 선택하는 것이 중요합니다.

K 값 설정 방법

  • 작은 K 값: 작은 K를 선택하면 모델이 과적합(Overfitting)될 가능성이 큽니다. 즉, 지나치게 세부적으로 분류할 수 있습니다.
  • 큰 K 값: 큰 K 값을 설정하면 모델이 일반화되지만, 과소적합(Underfitting)될 위험이 있습니다. 따라서, 최적의 K값을 찾기 위해 교차 검증(Cross-validation)을 통해 성능을 평가하는 것이 좋습니다.

K-NN의 활용 사례

K-NN은 다양한 분야에서 사용될 수 있습니다. 예를 들어:

  • 추천 시스템: 사용자 취향이 유사한 다른 사용자를 기반으로 영화를 추천하는 경우
  • 의료 진단: 유사한 증상을 가진 환자 데이터를 비교하여 진단하거나 예측하는 경우
  • 이미지 분류: 이미지를 벡터화한 후 유사한 이미지들을 분류할 때
  • 이상 탐지: 특정 패턴에서 벗어나는 데이터 포인트를 찾아내는 데 유용

결론

K-NN은 단순하면서도 강력한 알고리즘으로, 거리 기반의 데이터 패턴을 활용하여 분류와 예측에 뛰어난 성능을 보입니다. 데이터셋이 비교적 작고, 학습 시간이 중요한 문제가 아닐 때 이상적인 알고리즘이며, 특히 추천 시스템, 이미지 분류, 텍스트 유사도 계산 등에서 널리 사용되고 있습니다. K값과 거리 측도를 잘 설정하여 다양한 데이터 문제에 활용해 볼 수 있는 알고리즘입니다.

 

참조

https://ko.wikipedia.org/wiki/K-%EC%B5%9C%EA%B7%BC%EC%A0%91_%EC%9D%B4%EC%9B%83_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

k-최근접 이웃 알고리즘 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 패턴 인식에서 k-최근접 이웃 알고리즘(또는 줄여서 k-NN)은 분류나 회귀에 사용되는 비모수 방식이다.[1] 두 경우 모두 입력이 특징 공간 내 k개의 가장 가까운

ko.wikipedia.org

 

반응형

'Algorithm' 카테고리의 다른 글

BM25 알고리즘 요약  (1) 2024.10.23