/*******************************************************************************************************************
-- Title : [AL] KNN(K-Nearest Neighbor) 알고리즘
-- Reference : acorn, datamarket.kr
-- Key word : knn k 최근접이웃알고리즘 최 근접 이웃 알고리즘 algorithm
*******************************************************************************************************************/
■ Clustering vs. Classification
ㅁ 군집화(clustering)
ㅇ 유형을 알 수 없는 데이터를 어떠한 기준이나 규칙에 의해 데이터를 임의의 그룹으로 나누는 모델링
ㅇ 비지도 학습
ㅁ 분류(classification)
ㅇ 유형을 알고 있는 데이터를 특정 분류로 할당하기 위한 모델링
■ K-Nearest Neighbor
ㅁ 개요
ㅇ 기존 데이터 중 가장 유사한 k개의 데이터를 이용해서 새로운 데이터를 예측하는 방법
ㅇ 수치형 데이터 : k개의 데이터의 평균
ㅇ 명목형 데이터 : k개의 데이터 중 많이 나온 분류 항목 선택, 혹은 가중치를 주어 선택
ㅁ 특징
ㅇ Lazy Learning <- No abstraction, No generalization
ㅇ 대신, instance-based Learning
ㅇ Non-parametric Learning
ㅇ 너무 작은 k : Overfitting 우려
ㅇ 너무 큰 k : 데이터 구조 파악의 어려움
ㅁ 거리 계산
ㅇ Euclidean Distance
ㅇ Manhattan Distance
ㅇ 참고 : dbrang.tistory.com/1201
ㅁ 적절한 k 값의 선택
ㅇ Large k
• Bias 감소
• but, underfitting
ㅇ Small k
• Variance 감소
• but, overfitting
• single k -> outlier
■ Weighted k-Nearest Neighbor
ㅁ 가중치 적용