K-nearest neighbors : Machine Learning 중 가장 간단한 방법, base line으로도 쓰이며 유클리드 거리에 기반하여 가장 가까운 k개의 instance를 같은 클래스로 묶어서 분류하거나 클러스터링하는 알고리즘이다.
단점-> 계산량이많고, 메모리가 많이 필요하다. 노이즈에 약하다, 고차원에서 성능이 좋지 않다.(고차원에서 유클리드 거리를 측정하면, 매우 값이 크게 나오기 때문에 nearest neighbor라고 하기 어렵다는 것 같음.)
장점-> 정확도가 높다.
ex)
테스트케이스가 주어짐.
K=1이라면, 가장 근접한 1개의 점을 찾아서, 그것과 동일한 레이블을 다는 것.(보로노이 테셀레이션)
K=10이라면, 가장 근접한 10개의 점을 찾아서, 그중에서 가장 많은 것의 레이블을 다는 것.
(여기에 weight를 주어서, 가장 가까운것에 더큰 영향을 받게 할수도있음)
리그레션에서 적용도가능하다고함.
확률로 분포를 보여주기도 함.(아마)
• smaller k ⇒ higher variance (less stable) / 경계선의 센스티브가 너무 높아져서 오버피팅 됨. 학습한 데이터에대한 정확도는 매우 높지만, 그이외 데이터에대한 일반성이 떨어짐
• larger k ⇒ higher bias (less precise) / 경계가 센시티브하지 않고 스무스해짐.정확도는 좀 낮아지나,일반성이 높아짐
So, proper choice of k dependends on the data:
Adaptive methods, heuristics
Cross-validation
이런 방식을 Lazy learning이라고 하는구나(또는 instance-based learning)
IB1 : k가 1인 KNN
IBK : KNN와 동일한 뜻이다
http://www.lkozma.net/knn2.pdf
http://blog.naver.com/ppgt1225?Redirect=Log&logNo=100186645911
'Research' 카테고리의 다른 글
공분산, 상관계수, 왜도, 첨도 (0) | 2014.06.11 |
---|
댓글