K-최근접 이웃(KNN)이 분류 및 회귀 작업을 위한 직관적인 비모수적 접근 방식으로 머신러닝을 어떻게 간소화하는지 알아보세요.
가장 가까운 이웃(KNN)은 비모수적, 비모수적 지도 학습 알고리즘으로 분류 및 회귀 작업에 널리 사용됩니다. 흔히 "게으른 학습자" 또는 인스턴스 기반 학습 방법이라고도 하는 KNN은 학습 단계에서 학습 데이터로부터 판별 함수를 생성하지 않습니다. 판별 함수를 생성하지 않습니다. 대신, 전체 데이터 세트를 기억하고 새로운 인스턴스를 예측할 때만 계산을 수행합니다. 이 접근 방식 은 유사한 데이터 포인트가 특징 공간 내에서 근접해 있다고 가정하여 알고리즘이 새로운 입력을 가장 가까운 이웃의 다수 클래스 또는 평균값을 기반으로 새로운 입력을 분류할 수 있습니다.
가장 가까운 이웃의 운영 메커니즘은 데이터 포인트 간의 유사성을 정량화하기 위해 거리 메트릭에 의존합니다. 거리 메트릭을 사용합니다. 가장 일반적인 메트릭은 유클리드 거리이지만 맨해튼 거리 또는 밍코프스키 거리와 같은 다른 메트릭이 사용될 수 있습니다. 를 사용할 수도 있습니다. 예측 프로세스에는 여러 단계가 포함됩니다:
KNN의 단순성으로 인해 많은 머신 러닝 문제에 효과적인 기준이 됩니다. 다음은 널리 사용되는 Scikit 학습 라이브러리를 사용한 간결한 인기 있는 Scikit-learn 라이브러리를 사용한 간결한 예제입니다. 기본적인 분류 워크플로우를 보여줍니다.
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
# distinct classes: 0 and 1
X_train = np.array([[1, 1], [1, 2], [2, 2], [5, 5], [5, 6], [6, 5]])
y_train = np.array([0, 0, 0, 1, 1, 1])
# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# Predict class for a new point [4, 4]
prediction = knn.predict([[4, 4]])
print(f"Predicted Class: {prediction[0]}")
# Output: 1 (Closer to the cluster at [5,5])
단순함에도 불구하고, K-네이버 이웃은 해석 가능성과 인스턴스 기반 추론이 중요한 다양한 영역에서 사용됩니다.
KNN과 다른 알고리즘의 차이점을 이해하는 것은 컴퓨터 비전 또는 데이터 분석 프로젝트에 적합한 도구를 선택하려면 올바른 도구를 선택하는 데 필수적입니다.
KNN은 소규모 데이터 세트에는 강력하지만, 다음과 같은 확장성 문제에 직면해 있습니다. 모든 쿼리의 거리를 계산하는 데 드는 계산 비용으로 인해 계산 비용으로 인해 확장성 문제에 직면합니다. 고성능의 경우 다음과 같은 작업에서 실시간 추론 객체 감지, 최신 딥 러닝 아키텍처는 YOLO11 와 같은 최신 딥 러닝 아키텍처가 일반적으로 선호되는 이유는 뛰어난 속도와 정확성 때문에 선호됩니다.