분류 및 회귀 작업을 위한 직관적인 비매개변수 접근 방식으로 머신 러닝을 간소화하는 KNN(K-Nearest Neighbors)의 방법을 알아보세요.
최인접 이웃(KNN)은 분류 및 회귀 작업에 모두 사용되는 머신 러닝(ML)의 기본 알고리즘입니다. 단순하고 직관적인 접근 방식이 특징이며, 인스턴스 기반 학습을 이해하기 위한 훌륭한 출발점이 됩니다. KNN은 기본 데이터 분포에 대한 가정을 하지 않기 때문에 비모수적 방법으로 분류됩니다. 훈련 데이터 단계에서 일반 모델을 구축하지 않고 전체 데이터 집합을 저장한 후 예측이 필요할 때만 계산을 수행하기 때문에'지연 학습' 알고리즘이라고도 합니다.
KNN의 핵심 아이디어는 유클리드 거리와 같은 거리 메트릭을 사용하여 정의되는 유사성을 기반으로 합니다. 보이지 않는 새로운 데이터 포인트를 예측할 때, 알고리즘은 저장된 학습 데이터 세트에서 가장 가까운 데이터 포인트(이웃)를 'K' 개 식별합니다. 'K' 값은 사용자가 정의한 정수로, 고려되는 이웃의 수를 나타냅니다.
분류의 경우, 새 포인트는 K개의 이웃 클래스 중 가장 일반적인 클래스에 할당됩니다(다수결 투표). 회귀의 경우, 예측은 일반적으로 K 이웃의 평균값이 됩니다. 거리 메트릭(예: 맨해튼, 밍코스키)의 선택과 'K'의 값은 모델의 성능에 큰 영향을 미치는 중요한 하이퍼파라미터입니다. 특히 대규모 데이터 세트의 경우 이웃 검색 속도를 높이기 위해 KD 트리나 볼 트리와 같은 데이터 구조를 효율적으로 구현하는 경우가 많습니다.
최적의 'K'를 선택하는 것이 중요합니다. 'K' 값이 작으면(예: K=1) 모델이 데이터의 노이즈와 이상값에 매우 민감해져 훈련 데이터에서는 잘 작동하지만 보이지 않는 데이터에서는 성능이 저하되는 과적합이 발생할 가능성이 있습니다. 반대로 'K' 값이 크면 의사 결정 경계가 과도하게 평활화되어 모델이 로컬 패턴에 덜 민감해지고 예측 중에 과소 적합 및 높은 계산 비용이 발생할 수 있습니다. 교차 검증과 같은 기법( Scikit-learn 교차 검증 가이드 참조)을 사용하여 편향성-편차 균형의 균형을 맞추는 적절한 'K'를 찾는 경우가 많습니다. Scikit-learn 라이브러리는 KNN을 구현하고 하이퍼파라미터 검색을 수행하기 위한 도구를 제공하며, 일반적인 팁은 Ultralytics 하이퍼파라미터 튜닝 가이드에서 찾을 수 있습니다.
KNN의 단순성은 특히 해석 가능성을 중시하는 다양한 애플리케이션에 적합합니다:
KNN은 여러 가지 이점을 제공하지만 제한 사항도 있습니다:
장점:
단점:
KNN을 다른 알고리즘과 구별하는 것이 중요합니다:
KNN은 특정 작업과 기본적인 ML 개념을 이해하는 데 유용하지만, 실시간 객체 감지와 같은 복잡한 문제에는 다음과 같은 고급 모델의 이점이 더 큰 경우가 많습니다. Ultralytics YOLO와 같은 고급 모델이 특히 대규모 컴퓨터 비전 데이터 세트에서 뛰어난 속도와 성능을 제공합니다. 이러한 모델을 훈련하고 배포하려면 Ultralytics HUB와 같은 플랫폼을 사용할 수 있습니다.