혼공머신 ch1-2_colab

#01-3 마켓과 머신러닝
##k-최근접 이웃 알고리즘
>가장 간단한 머신러닝 알고리즘 "k-최근접 이웃"을 사용하려 2개의 종류를 분류하는 머신러닝 모델 훈련

머신러닝에서 여러 개의 종류 중 하나를 구별하는 문제 - classification

2개의 클래스 중 하나 - 이진분류(binary classification)

사이킷런 패키지 - KNeighborsClassifier 클래스

데이터에 대한 답을 구할 때 주위의 다른 데이터를 보고 다수를 차지하는 것을 정답으로 사용

정답(타깃)이 있으니 알고리즘은 정답을 맞히는 것을 학습

###**지도학습**

[데이터(=입력(input)) , 정답(=타깃(target))] -> 훈련데이터(training data)

입력으로 사용된 데이터=특성(feature)

fit() 메서드에 전달한 데이터를 모두 저장하고 있다가 새로운 데이터가 등장하면 가장 가까운 데이터를 참고하여 구분

KNeighborsClassifier 클래스의 데이터 참고 기본값은 5

n_neighbors 매개변수로 바꿀 수 있음.

정확도, 정확한 답을 몇 개 맞혔는지를 백분율로 나타낸 값,

정확도=(정확히 맞힌 개수)/(전체 데이터 개수)

###**핵심패키지와함수**

* matplotlib

 >scatter(), 산점도, 처음 2개의 매개변수로 x축 값과 y축 값을 전달 (예문 plt.scatter(x,y)), 파이썬 리스트 또는 넘파이 배열

      c      매개변수로 색깔 지정, <http://bit.ly/matplotlib_prop_cycle>
      marker 매개변수로 마커스타일 지정 <http://bit.ly/matplotlib_marker>

* scikit-learn

 >KNeighborsClassifier(), k-최근접 이웃 분류 모델을 만드는 사이킷런 클래스, n_neighbors 매개변수로 이웃의 개수를 지정(기본값=5)
     
      p      매개변수로 거리를 재는 방법 지정, 기본값=2
             1=맨해튼 거리(<http://bit.ly/man_distance>)
             2=유클리디안 거리(<http://bit/ly/euc_distance>)
      n_jobs 매개변수로 사용할 CPU코어 지정, 기본값=1. -1=모든 CPU코어 사용

 >fit(), 사이킷런 훈련 메서드, 처음 두 매개변수로 훈련에 사용할 특성과 정답 전달

 >predict(), 사이킷런 모델 훈련과 예측, 특성 데이터 하나만 매개변수로 받음

 >score(), 훈련된 사이킷런 모델의 성능 측정, 처음 두 매개변수로 특성과 정답 데이터 전달, 먼저 predict() 메서드로 예측을 수행한 다음 분류 모델일 경우 정답과 비교하여 올바르게 예측한 개수의 비율을 반환

도미 데이터 준비하기

image.png

빙어 데이터 준비하기

image.png

K-최근접 이웃 알고리즘

image.png

image.png

image.png

image.png

훈련세트와 테스트 세트

image.png