ML_AI/24_여름방학 인공지능 스터디

[교재] 1. 나의 첫 머신 러닝

안정민 2024. 6. 27. 10:50

1. k-최근접 이웃 알고리즘

 

-k-최근접 이웃 알고리즘 : 어떤 데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용, 마치 근묵자흑과 같이 주위의 데이터로 현재 데이터를 판단

-즉, 주변에서 가장 가까운 k개의 데이터를 보고 다수결의 원칙에 따라 데이터를 예측한다

장점 단점
-준비해야 할 일은 데이터를 모두 가지고 있는 것이 전부이다

-새로운 데이터를 예측할 때 가장 가까운 직선 거리에 어떤 데이터가 있는지를 살피기만 하면 된다
- 데이터가 아주 많은 경우 사용이 어렵다

-데이터가 크기 때문에 메모리가 많이 필요하고 직선거리를 계산하는데도 많은 시간이 필요하다

 

- k-최근접 이웃 알고리즘은 실질적으로, 무언가 훈련이 되는 건 없는 셈이다. fit() 메서드에 전달한 데이터를 모두 저장하고 있다가 새로운 데이터가 등장하면 가장 가까운 데이터를 참고하여 도미인지 빙어인지 구분하기 때문

 

- 사이킷런의 KNeighborsClassifier 클래스의 기본값은 5이다.

-즉, 새로운 데이터로부터 가장 가까운 값 5개를 참고하여 정답 레이블을 정한다는 것이다

-그리고 이는 n_neighbors 매개변수로 변경할 수 있다.

kn49 = KNeighborsClassifier(n_neighbors=49)

 


실습 파일

BreamAndSmelt.ipynb
0.03MB


 

** 핵심 패키지와 함수

패키지 함수 설명
matplotlib.pyplot scatter() 산점도를 그리는 맷플롯립 함수
처음 두 개의 매개변수를 x축과 y축 값으로 전달
맷플롯립은 친절하게 2개의 산점도를 색으로 구분하여 나타낸다
scikit-learn KNeighborsClassifier() k-최근접 이웃 분류모델을 만드는 사이킷런 클래스
n_neighbors 매개변수로 이웃의 개수를 정하며, 기본값은 5이다
p 매개변수로 거리를 재는 방법을 지정, 1=맨해튼거리, 2=유클리디안 거리
n_jobs 매개변수로 CPU 코어를 지정 가능
fit() 사이킷런 모델을 훈련할 때 사용하는 메서드
처음 두 매개변수로 훈련에 사용할 특성과 정답 데이터를 전달
predict() 사이킷런 모델을 훈련하고 예측할 때 사용하는 메서드
특성 데이터 하나만 매개변수로 받는다
score() 훈련된 사이킷런 모델의 성능을 측정한다
처음 두 매개변수로 특성과 정답 데이터를 전달
이 메서드는 먼저 predict() 메서드로 예측을 수행한 다음 분류모델일 경우 정답과 비교하여 올바르게 예측한 개수의 비율을 반