1 minute read


Supervised learning(비지도 학습)이란 label을 컴퓨터에 미리 알려주고 학습시키는 방법.



3.1.1 k-Nearest Neighbor

k-nearest neighbor는 새 입력을 받았을 때 기존 cluster에서 모든 데이터와 instance 기반으로 거리를 측정하고 가장 많은 속성을 가진 cluster에 해당 입력을 할당한다.

즉 과거 데이터를 사용해 미리 분류 모형을 만드는 것이 아니라 과거 데이터를 저장해 두고 필요할 때마다 비교를 수행한다.


먼저 라이브러리 호출 및 데이터 준비.

 - Line 1 : 벡터, 행렬 연산 처리를 위한 라이브러리
 - Line 2 : 데이터를 차트, 플롯 형태로 그리기 위한 라이브러리
 - Line 3 : 데이터 분석  조작을 위한 라이브러리
 - Line 4 : 모델 성능 평가
 - Line 6 : 데이터셋의 column 이름 할당
 - Line 8 : 데이터를 pandas dataframe 저장.

여기서는 iris dataset을 사용한다.



다음은 데이터 전처리를 진행하고 training set, test set으로 분리.

 - Line 13 : 평균이 0, std 1 되도록 scaling.
 - Line 15 : training data scaling.
 - Line 16 : test data scaling.


모델을 생성하고 훈련시키자.


모델에 대한 정확도를 측정.

 - Result :
 정확도: 0.9666666666666667

train_test_split() method는 데이터를 무작위로 분할하므로, 매번 코드를 실행할 떄마다 정확도에 차이가 있을 수 있다.



3.1.2 Find best K

k-NN의 최적의 $K$값은 무엇이 될까? for문을 사용해 $K$값을 순환하면서 최적의 $K$값을 찾아보자.

 - Result :
 정확도  1.0 으로 최적의 k 1 입니다.