용어집

K-네이버 이웃(KNN)

분류 및 회귀 작업을 위한 직관적인 비매개변수 접근 방식으로 머신 러닝을 간소화하는 KNN(K-Nearest Neighbors)의 방법을 알아보세요.

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

최인접 이웃(KNN)은 분류 및 회귀 작업에 모두 사용되는 머신 러닝(ML)의 기본 알고리즘입니다. 단순하고 직관적인 접근 방식이 특징이며, 인스턴스 기반 학습을 이해하기 위한 훌륭한 출발점이 됩니다. KNN은 기본 데이터 분포에 대한 가정을 하지 않기 때문에 비모수적 방법으로 분류됩니다. 훈련 데이터 단계에서 일반 모델을 구축하지 않고 전체 데이터 집합을 저장한 후 예측이 필요할 때만 계산을 수행하기 때문에'지연 학습' 알고리즘이라고도 합니다.

KNN 작동 방식

KNN의 핵심 아이디어는 유클리드 거리와 같은 거리 메트릭을 사용하여 정의되는 유사성을 기반으로 합니다. 보이지 않는 새로운 데이터 포인트를 예측할 때, 알고리즘은 저장된 학습 데이터 세트에서 가장 가까운 데이터 포인트(이웃)를 'K' 개 식별합니다. 'K' 값은 사용자가 정의한 정수로, 고려되는 이웃의 수를 나타냅니다.

분류의 경우, 새 포인트는 K개의 이웃 클래스 중 가장 일반적인 클래스에 할당됩니다(다수결 투표). 회귀의 경우, 예측은 일반적으로 K 이웃의 평균값이 됩니다. 거리 메트릭(예: 맨해튼, 밍코스키)의 선택과 'K'의 값은 모델의 성능에 큰 영향을 미치는 중요한 하이퍼파라미터입니다. 특히 대규모 데이터 세트의 경우 이웃 검색 속도를 높이기 위해 KD 트리나 볼 트리와 같은 데이터 구조를 효율적으로 구현하는 경우가 많습니다.

'K'의 값 선택하기

최적의 'K'를 선택하는 것이 중요합니다. 'K' 값이 작으면(예: K=1) 모델이 데이터의 노이즈와 이상값에 매우 민감해져 훈련 데이터에서는 잘 작동하지만 보이지 않는 데이터에서는 성능이 저하되는 과적합이 발생할 가능성이 있습니다. 반대로 'K' 값이 크면 의사 결정 경계가 과도하게 평활화되어 모델이 로컬 패턴에 덜 민감해지고 예측 중에 과소 적합 및 높은 계산 비용이 발생할 수 있습니다. 교차 검증과 같은 기법( Scikit-learn 교차 검증 가이드 참조)을 사용하여 편향성-편차 균형의 균형을 맞추는 적절한 'K'를 찾는 경우가 많습니다. Scikit-learn 라이브러리는 KNN을 구현하고 하이퍼파라미터 검색을 수행하기 위한 도구를 제공하며, 일반적인 팁은 Ultralytics 하이퍼파라미터 튜닝 가이드에서 찾을 수 있습니다.

KNN의 애플리케이션

KNN의 단순성은 특히 해석 가능성을 중시하는 다양한 애플리케이션에 적합합니다:

KNN의 장점과 단점

KNN은 여러 가지 이점을 제공하지만 제한 사항도 있습니다:

장점:

  • 단순성 및 해석 가능성: 이웃을 기반으로 한 예측 로직을 쉽게 이해하고 설명할 수 있습니다.
  • 명시적 교육 단계 없음: 모델 재학습이 필요하지 않고 데이터 포인트만 추가하면 되므로 새로운 데이터에 빠르게 적응할 수 있습니다.
  • 유연성: 다중 클래스 분류를 자연스럽게 처리하고 회귀에 맞게 조정할 수 있습니다.

단점:

KNN과 관련 개념

KNN을 다른 알고리즘과 구별하는 것이 중요합니다:

  • K-메인 클러스터링: K-Means는 유사도에 따라 데이터를 K개의 클러스터로 그룹화하는 데 사용되는 비지도 학습 알고리즘입니다. KNN은 레이블이 지정된 이웃을 기반으로 분류 또는 회귀에 사용되는 지도 학습 알고리즘입니다.
  • 서포트 벡터 머신(SVM): SVM은 클래스를 구분하기 위한 최적의 하이퍼플레인을 찾는 지도 알고리즘입니다. KNN은 로컬 이웃 유사성을 기반으로 분류하는 반면, SVM은 전역 최적 경계를 찾습니다. Scikit-learn SVM 페이지에서 자세히 알아보세요.
  • 의사 결정 트리: 의사 결정 트리는 일련의 계층적 규칙을 학습하여 트리와 같은 구조를 만들어 데이터를 분류합니다. KNN은 거리 기반 유사성을 사용하는 반면, 의사 결정 트리는 특징 기반 분할을 사용합니다. 자세한 내용은 Scikit 학습 의사 결정 트리 페이지를 참조하세요.

KNN은 특정 작업과 기본적인 ML 개념을 이해하는 데 유용하지만, 실시간 객체 감지와 같은 복잡한 문제에는 다음과 같은 고급 모델의 이점이 더 큰 경우가 많습니다. Ultralytics YOLO와 같은 고급 모델이 특히 대규모 컴퓨터 비전 데이터 세트에서 뛰어난 속도와 성능을 제공합니다. 이러한 모델을 훈련하고 배포하려면 Ultralytics HUB와 같은 플랫폼을 사용할 수 있습니다.

모두 보기