본문 바로가기
혤로그 이전의 기록/프로젝트 일지

[ Machine Learning ]K-Nearest Neighbors(KNN) : 최근접이웃 강의 내용 정리

by hyelllllog 2021. 1. 30.

이번주에 3주차 강의 들었다.

내일은 실습 복습하고 과제1,2 하고~

다음주는 좀 널널하니까 4,5주차 강의 들어야겠다.

이번 방학에 다 끝내고 기계학습 수업듣는게 목표...! ٩(๑'o'๑)۶


K-Nearest Neighbors(KNN)의 개념

 

KNN 개념

 

: 주변 k개의 자료의 클래스 중 가장 많은 클래스로 특정 자료를 분류 //가까이에 가장 많이 있는//

 

ⓐ KNN 특징 

 - 매우 간단한 방법이면서 performance는 떨어지지 않아서 많이 사용.

 - 데이터 차원이 증가하면 차원의 저주(curse of dimension) 문제 발생 //차원이 증가할수록 성능 저하가 심함//

   * 차원의 저주 : 차원이 증가할수록 데이터의 분포 분석에 필요한 샘플 데이터의 개수가 기하급수적으로 증가함

 - 관측치의 거리로 Minkowski 거리를 이용

 

Minkowski distance

 

ⓑ Parameter

- 탐색할 이웃 수(k)와 거리 측정 방법 선택 //성능 결정//

 

k에 따른 분류 비교

 

▶ k가 너무 작을 경우, 데이터의 지역적 특성을 지나치게 반영하여 과접합(Overfitting) 발생 

▶ k가 너무 클 경우, 모델이 과하게 정규화(Underfitting) 발생  

--> 실험적 선택 필요, 학습을 통한 데이터 경향성 파악이 중요 

 

ⓒ 분류방식 

- 다수결 방식 (Majority voting) 

: 이웃 범주 가운데 빈도 기준 제일 많은 범주로 새 데이터의 범주 예측

 

- 가중 합 방식 (Weighted voting) 

: 가까운 이웃의 정보에 좀 더 가중치를 부여

KNN 장단점 요약 

▶ 장점 ◀
 - 학습데이터 수가 많다면 꽤 효과적인 알고리즘
 - 마할라노비스 거리와 같이 데이터의 분산을 고려할 경우 매우 강건한 방법론  

    *마할라노비스 거리(Mahalanobis distance) :  평균과의 거리가 표준편차의 몇 배인지를 나타내는 값 

    즉, 얼마나 일어나기 힘든 값인지, 얼마나 이상한 값인지를 수치화  

 

▶ 단점 ◀

 - 데이터 각각의 특성에 맞게 k와 Distance metric을 연구자가 임의로 선정해야 한다.

 - 계산 시간이 오래 걸림 ( 새로운 데이터와 각각의 학습 데이터 사이의 거리를 전부 측정해야 하므로)

   --> KNN의 계산복잡성을 줄이려는 시도들 : Locality Sensitive Hashing, Network based Indexer, Optimized product quantization 

 

실습 순서

1. 데이터 준비 

데이터셋 불러오기 -> 데이터셋 카테고리의 실수화 -> 데이터 분할 -> 입력데이터의 표준화

 

2. 학습 

모형 추정 혹은 사례 중심 학습

 

3. 결과 분석 

Confusion matrix로 확인 

 

 

ⓐ 데이터 분할 --> 학습 결과의 일반화가 가능한지 알아보기 위함

: 학습 데이터(train)과 시험 데이터(test)가 서로 겹치지 않도록 나누는 것

 

데이터 분할

 

 

ⓑ 결과 분석 데이터

 

 

 

 

1. 정확도 (Accuracy)

 

 

2. 정밀도 (Precision)

 

 

3. 재현율 (recall)