-
KNN (K-Nearest Neighbors) 알고리즘딥러닝 2023. 8. 4. 23:55
KNN 알고리즘이란 머신러닝 알고리즘 중 하나로, 주위 데이터를 보고 해당 데이터의 값을 유추하는 알고리즘이다.
예측하고자 하는 데이터의 가장 가까운 직선거리에 어떤 데이터가 있는지를 계산하여 예측하게 된다. 따라서 KNN 알고리즘은 실제로는 훈련되는 게 없이 데이터 저장하는 것이 전부라고 할 수 있다. 따라서 KNN 알고리즘의 단점은 데이터가 많은 경우 메모리 용량이 늘어나게 되고, 직선거리 계산 시간이 늘어나게 된다.
그렇다면 KNN 은 몇 개의 데이터를 참고하여 예측하는 것일까? 이것은 사실 정하기 나름이다. 사이킷런에서 KNN 을 import해서 사용하는 경우 기본값은 5이다. 즉, 5개의 데이터를 참고해서 예측한다.
"혼자 공부하는 머신러닝 + 딥러닝" 책에 나와있는 예시를 보면, KNN classifier에 fit한 데이터가 49개 중 35개가 '도미' 의 feature에 해당하는 데이터라 했을 때, 만약 KNN의 n-neighbors 값을 49로 셋팅한다면 어떤 생선 관련 데이터가 들어와도 '도미' 로 예측할 것이다. 이러한 모델은 좋은 모델이 아니다. 따라서 몇 개의 데이터를 참고하여 예측할지 (n-neighbors) 적정한 값을 찾는 것이 중요하다.
'딥러닝' 카테고리의 다른 글
SVM(Support Vector Machine) 모델이란? (0) 2023.08.20 NB (Naive Bayes) 알고리즘 (0) 2023.08.05 구글 코랩을 이용해 딥러닝/머신러닝 하기 (0) 2023.07.28 머신러닝이란? (0) 2023.07.24 인공지능이란? (0) 2023.07.20