K-최근접 이웃(K-Nearest Neighbors, KNN)
새로운 데이터가 들어왔을 때, 기존 데이터 중 가장 가까운 K개의 이웃(데이터 포인트)을 참고하여 이 데이터를 분류하거나 값을 예측하는 알고리즘 (가까운 기준은 거리(distance)를 기준으로 함)
K-최근접 이웃 주요 특징
K-최근접 이웃 작동 원리
1) 거리 계산 : 새로운 데이터와 기존 데이터 간의 거리를 계산함
![]() |
2) 가까운 K개의 이웃 선택 : 거리 계산 결과를 기반으로 가장 가까운 K개의 데이터를 선택
3) 다수결(or 평균)
4) 결과 출력 : 최종적으로 분류 결과나 예측값을 제공
K 선택의 중요성
K는 KNN 알고리즘의 핵심 파라미터로 적절한 K값을 선택하는 것이 성능에 큰 영향을 미침
일반적으로, K는 홀수로 설정하며, 교차 검증(cross-validation)을 통해 적절한 값을 찾음
K-최근접 이웃의 장단점
1) 장점
2) 단점
Python에서 scikit-learn 라이브러리를 사용해 간단한 K-최근접 이웃(KNN) 모델을 구현
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 데이터 생성
X = np.array([[1, 2], [2, 3], [3, 1], [6, 5], [7, 7], [8, 6]])
y = np.array([0, 0, 0, 1, 1, 1])
# 훈련 데이터와 테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# KNN 모델 생성
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# 예측
y_pred = knn.predict(X_test)
# 결과 출력
print("Predictions:", y_pred)
print("Accuracy:", accuracy_score(y_test, y_pred))
분류 - 서포트 벡터 머신(SVM) (0) | 2025.02.20 |
---|---|
분류 - 의사결정나무(Decision Tree) (2) | 2024.12.16 |
분류 - 로지스틱 회귀(Logistic Regression) (2) | 2024.11.28 |
분류(Classification) (0) | 2024.11.26 |
회귀분석-Elastic Net (1) | 2024.11.20 |