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