코딩 기록들

[ AI기초 ] 05-2. 사이킷런 실습 (K-최근접 이웃, 분류 알고리즘) 본문

AI 기초

[ AI기초 ] 05-2. 사이킷런 실습 (K-최근접 이웃, 분류 알고리즘)

코딩펭귄 2022. 10. 30. 21:06

  K-최근접 이웃  

  • 머신러닝에서 사용되는 지도학습의 한 종류 + 분류 알고리즘
  • 거리기반으로 분류하는 '클러스트링'과 유사한 개념이지만, 기존관측치의 y(class)값이 존재한다는점에서 차이가 있음
  • 유사한 특성을가진 데이터는 유사한 범주에 속하는 경향이 있다는 가정하에 사용함
  • 데이터로부터 거리가 가까운 'k'개의 다른 데이터의 레이블을 참조하여 분류하는 알고리즘
  • 노이즈가 없을땐, k=1 이 가장 이상적임

- 테스트 데이터인 빨간 별 에서부터 가장 가까운 학습데이터들의 클래스를 살펴본 후, 그중 더 많은 수가 속해있는 클래스가 테스트데이터의 클래스로 결정이 된다.

- 이 그래프의 경우, k=3일때, 테스트데이터는 Class B로 분류되고, k=3일때, Class A로 분류된다.

- 이때, k의 개수는 홀수로 하는것이 좋다.(만약 k개가 짝수일경우 동점상황이 만들어져 분류가 힘든 상황이 발생할수도 있기 때문)

 

이미지출처) https://medium.com/machine-learning-researcher/k-nearest-neighbors-in-machine-learning-e794014abd2a

 

 

 

 

  K-최근접이웃(K-Nearest Neighbors) 실습  

- 05-1. 실습예제의 iris 데이터 동일하게 사용

예측값과 실제값을 비교하여 나타낸 결과. 대부분 True임을 볼수 있다
테스트세트에대한 정확도를 출력해 보아도(위의 배열에서 True가 대부분이었던것과 마찬가지로) 97.7%로 높은 확률이 나온다