데이터 분석/머신러닝

KNN

교정이 2022. 3. 14. 10:32

https://www.analyticsvidhya.com/blog/2018/08/k-nearest-neighbor-introduction-regression-python/

 

KNN(k-nearest-neighbors)는 새로운 관측값이 주어지면 기존 데이터 중에서 가장 속성이 비슷한 k개의 이웃을 먼저 찾는다. 그리고 가까운 이웃들이 갖고 있는 목표 값과 같은 값으로 분류하여 예측한다.

따라서 KNN 알고리즘은 지도학습의 한 종류로 거리기반 분류분석 모델이다. k 값에 따라 예측의 정확도가 달라지므로, 적절한 k값을 찾는 과정이 매우 중요하다.

 

 

KNN은 데이터 간 거리를 참조할 때 '유클리디안 거리' 계산법을 사용한다. 간단하지만 이미지 처리, 영상 인식, 추천 알고리즘, 데이터의 패턴 인식 등으로 사용할 수 있다. 명목 데이터를 처리하고자 할 때, 유클리디안 거리 계산은 명목 데이터를 처리할 수 없으므로, 수치 형식으로 변환해야 한다. 이때 '더미 코딩'을 활용할 수 있다.

 

 

장단점

장점 단점
ㆍ효율적이다
ㆍ단순하다. 때문에 알고리즘 구현이 쉽다
ㆍ훈련 단계가 빠르다
ㆍ기저 데이터 분포에 대한 가정을 하지 않는다
ㆍ수치 기반 데이터 분류 작업에서 성능이 우수하다
ㆍ모델을 생성하지 않아 특징과 클래스 간 관계를 이해하는 데 제한적이다
ㆍ 적절한 k의 선택이 필요하다
ㆍ 데이터가 많아지면 분류 속도가 느려지고 계산량이 많아진다
ㆍ 명목 특징 및 누락 데이터를 위한 추가 처리가 필요하다

참고: https://m.blog.naver.com/bestinall

 

데이터 마케팅 공부방 (best.in.all) : 네이버 블로그

데이터 분석과 마케팅을 업으로 하고 있습니다. 데이터에 관해 함께 공부하고 성장해가고 싶습니다.

m.blog.naver.com

 

예제

 

데이터 전처리

- titanic 데이터셋에 대해 누락 데이터 처리 및 더미 코딩 등의 전처리를 진행ㆍ완료했다.

 

 

훈련/검증 데이터 분할

- 데이터 정규화 및 7:3 비율로 훈련/검증 데이터를 분할했다.

 

 

모형 학습 및 검증

 

- 결과에 따라서 215명의 승객 중에서 미생존자를 정확히 예측한 TN은 108명, 미생존자를 생존자로 잘못 분류한 FP는 17명, 생존자를 미생존자로 잘못 분류한 FN은 30명, 생존자를 정확하게 예측한 TP는 60명으로 확인할 수 있다.

 

 

- metrics 모듈의 classification_report() 함수를 사용하면 정확도, 재현율, f1-score, support 지표를 출력한다.

- f1-score을 보면 미생존자(0) 예측의 정확도가 0.82이고, 생존자(1) 예측의 정확도는 0.72이다.

'데이터 분석 > 머신러닝' 카테고리의 다른 글

분류 분석  (0) 2022.03.11
다중회귀분석  (0) 2022.03.08
다항회귀분석  (0) 2022.02.20
단순회귀분석  (0) 2022.02.19
회귀분석  (0) 2022.02.14