본문 바로가기
Data_engineering/Machine_learning

[알고리즘] K-Nearest Neighbors

by kyhh1229 2023. 2. 26.

KNeighborsClassifier()

KNeighborsClassifier()는 K-최근접 이웃 알고리즘을 사용하여 분류 모델을 만들기 위한 함수입니다.

K-최근접 이웃 알고리즘은 새로운 데이터 포인트를 분류하기 위해 가장 가까운 K개의 이웃 데이터 포인트를 확인하고,

이 이웃들의 레이블을 참조하여 새 데이터 포인트의 레이블을 예측합니다.

 

KNeighborsClassifier() 함수는 다양한 하이퍼파라미터를 가지고 있으며, 이를 조정하여 모델 성능을 향상시킬 수 있습니다. 예를 들어, K 값은 이웃의 수를 조정하는데 사용되며, 더 작은 K 값은 모델의 유연성을 높이고 더 많은 노이즈를 수용할 수 있지만, 더 큰 K 값은 보다 안정적인 모델을 만들어 줍니다.

 

from sklearn.neighbors import KNeighborsClassifier

# KNeighborsClassifier 객체 생성
knn = KNeighborsClassifier(n_neighbors=5)

# 모델 학습
knn.fit(X_train, y_train)

# 예측
y_pred = knn.predict(X_test)

 

 

K-최근접 이웃 알고리즘의 장점과 단점은 다음과 같습니다.

장점

  • 간단하고 직관적인 알고리즘으로, 이해하기 쉽습니다.
  • 모델의 학습 시간이 없으며, 빠르게 예측을 수행할 수 있습니다.
  • 비선형적인 결정 경계를 학습할 수 있습니다.

단점

  • 모델의 예측 성능이 상대적으로 낮을 수 있습니다.
  • 이상치(outlier)에 민감하게 반응합니다.
  • 모델 튜닝이 어렵습니다.
  • 데이터의 차원이 높아질수록 예측 성능이 떨어질 수 있습니다.

K-최근접 이웃 알고리즘은 적은 양의 데이터에서는 높은 예측 성능을 발휘할 수 있지만,

데이터의 차원이 높아질수록 성능이 떨어지는 단점이 있습니다.

'Data_engineering > Machine_learning' 카테고리의 다른 글

[Machine learning] 교차검증  (0) 2023.02.27
[알고리즘] 앙상블_랜덤포레스트_그레이디언트  (0) 2023.02.26
[sklearn] predict ()  (0) 2023.02.26
[sklearn] score()  (0) 2023.02.26
[sklearn] fit ()  (0) 2023.02.26

댓글