K-NN(최근접이웃) 알고리즘 Start
BioinformaticsAndMe
What is a K-NN Algorithm?
: K-NN(Nearest Neighbor)는 단순하지만 높은 정확성의 특징으로 널리 사용되는 분류 알고리즘
: K-NN은 사용할 수 있는 모든 경우를 저장하고 Distance measure 등의 유사성에 기반하여, 새로운 정보를 분류하는 단순한 알고리즘
: 객체는 K개의 최근접 이웃 사이에서 가장 공통적인 항목에 할당되는 객체로 과반수 투표에 의해 분류
*예제: 당신은 내가 다음 총선 때 여당과 야당 중 어느 쪽을 지지할지 예측할 수 있는가?
당신이 나를 전혀 몰라도, 내 주변 이웃들이 지지하는 정당을 안다면, 어느 정도 내 선택을 예측할 수 있다.
How the K-NN algorithm works?
: K-NN에서 K는 가장 가까운 이웃의 수 (이웃의 수는 이 알고리즘의 핵심적인 결정 요인)
: 클래스가 두 개인 경우에서 K는 일반적으로 홀수 (K=1 인 경우의 알고리즘은 가장 가까운 인접 알고리즘이라 함)
: 아래 그림은 노랑색 물음표의 Label을 예측하는 상황에서, K=1인 경우, 물음표에 가장 가까운 이웃의 Label을 물음표에 할당
KNN 알고리즘 아래 3단계로 수행된다
1) 가장 가까운 이웃을 찾기 위해, Distance measure를 사용해 이웃 간의 거리를 계산
*Distance measure: Euclidean distance/Manhattan distance/Minkowski distance
2) 거리가 가까운 이웃들 K개 만큼 찾음
3) 찾아진 이웃들을 다수결 투표 원칙으로 기반하여, 신규 데이터 Label 예측
#일반적으로 사용되는 Euclidean distance measure
How to choose the optimal value of K?
: 이웃수 K는 K-NN 모델링에서 입력해야 하는 Hyper-parameter
: 일반적으로 K 값이 커질수록 전체 노이즈가 줄어들면서, 모델의 정확도가 커짐 (항상 그런 것은 아님)
#Reference
1) https://www.datacamp.com/community/tutorials/k-nearest-neighbor-classification-scikit-learn
2) https://www.kdnuggets.com/2019/07/classifying-heart-disease-using-k-nearest-neighbors.html
3) https://ko.wikipedia.org/wiki/K-%EC%B5%9C%EA%B7%BC%EC%A0%91_%EC%9D%B4%EC%9B%83_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
4) https://kkokkilkon.tistory.com/14
K-NN(최근접이웃) 알고리즘 End
BioinformaticsAndMe
'Machine Learning' 카테고리의 다른 글
차원의 저주 (Curse of dimensionality) (0) | 2019.11.04 |
---|---|
Feature selection vs Feature extraction (0) | 2019.10.29 |
랜덤포레스트(Random Forest) (0) | 2019.10.17 |
[TensorFlow] Logistic Regression (0) | 2019.10.09 |
[TensorFlow] Linear Regression (0) | 2019.10.05 |