K-Nearest Neighbor Classifier (요약)

 1. 언제 사용하는가?
  • Vector features
  • Less than 20 attributes (Computational cost 가 높기 때문)
  • Training data가 충분히 많을 때

2. 장점

  • Training이 매우 빠르다
  • 복잡한 형태의 target function (decision boundary)도 학습 가능
  • 원본 Data 정보 손실이 없다

3. 단점
  • Query 답변이 느리다 (거리 계산이 느림)
  • 상관없는 attribute나 outlier에 취약하다 (Smoothing 이 없음)

4. Voronoi Diagram
  • KNN 방법은 모든 training data를 저장 -> 많은 Memory 소모
  • Voronoi Diagram을 형성하여 Memory 소모량을 줄인다.
  • Training time 증가
  • Test time 감소

5. Distance Metric
  • Nearest를 결정하는 방법은 distance metric에 달려있음
  • Euclidean (L2) distance
  • Manhattan / City-block (L1) distance
  • 각 Dimension을 다르게 Scale 하는 Weighted 방법도 있음
  • 그 외에도 다양...

6. Standardization (표준화)
  • 원본(Raw) feature들을 새로운 Z-score로 변경
$$ z_{ij} = \frac{x_{ij} - \mu_j }{\sigma_j} $$
  • i번 sample의 j번 feature를 표준화

7. Efficient searching
  • 효율적인 검색을 위해 데이터를 구조화
  • KD tree
    1. Choose dimension
    2. Choose pivot (median)
    3. Split data <repeat>
8. Choosing K
  • Validation data가 없고, Train data만 있다면, N-fold cross validation을 사용
  • 각 K에 대하여 K-NN을 Train, Test 진행
  • cross validation error가 가장 작은 K를 선택 (일반적으로 홀수)
  • Train sample $\rightarrow \infty$ 이고 K가 증가하면, KNN은 Optimal Bayes Classifier에 가까워진다









댓글

이 블로그의 인기 게시물

One-Class SVM & SVDD

Support Vector Regression (SVR)

Self-Training & Co-Training