사이킷런의 load_breast_cancer 데이터를 이용하여 n_neighbors를 1~11까지 변화시켜가며
train 정확도와 test 정확도 그래프를 확인하고 가장 적절한 k값을 판단해보세요.
import numpy as np
import pandas as pd
from sklearn.datasets import load_breast_cancer
# 사이킷런에서 제공하는 심장병 데이터 불러오기
breast_cancer = load_breast_cancer()
# 데이터 키 확인
breast_cancer.keys()
# 데이터 분류
Xd_train, Xd_test, yd_train, yd_test = train_test_split(breast_cancer['data'],breast_cancer['target'],test_size=0.3, random_state=40)
# 리스트 형태로 1~ 11까지의 train, test 정확도 그래프
train_acc,test_acc = [],[]
for i in range(1,12):
clf3 = KNeighborsClassifier(n_neighbors=i)
clf3.fit(Xd_train, yd_train)
predict_label = clf3.predict(Xd_test)
train_acc.append(clf3.score(Xd_train, yd_train))
test_acc.append(clf3.score(Xd_test, yd_test))
plt.plot(range(1,12),train_acc, label="train")
plt.plot(range(1,12),test_acc, label = "test")
plt.legend()
'머신러닝 in Python' 카테고리의 다른 글
[Python] RandomForest (0) | 2019.08.27 |
---|---|
[Python] DecisionTree (0) | 2019.08.27 |
[Python]k-nearest neighbor (0) | 2019.08.26 |
텍스트 분석_BOW (0) | 2019.08.14 |
텍스트 분석_텍스트 전처리 2 (0) | 2019.08.14 |