sklearn-Cross_Validation1:knn演算法中不同k值對應的模型準確率
阿新 • • 發佈:2019-01-02
""" @author: Vincnet_Sheng @file: sklearn-cross_validation-1.py @time: 2018/1/4 0004 下午 8:17 #-*- coding: utf-8 -* """ # target: 1) cross_validation 對同一sample中取不同的train和test # 2) knn演算法中,k值大小對應預測準確率的關係,並可視化呈現 from sklearn.datasets import load_iris from sklearn.model_selection import cross_val_score from sklearn.neighbors import KNeighborsClassifier import matplotlib.pyplot as plt # load data iris = load_iris() X = iris.data y = iris.target # 對k取1-30的值,計算每個k對應的平均scores k_range = range(1, 31) k_scores = [] #k_class is list for k in k_range: knn = KNeighborsClassifier(k) # 學習方法為knn,資料分成5分(cv),打分方法為accuracy, 輸出為5維元組 scores = cross_val_score(knn, X, y, cv=10, scoring='accuracy') k_scores.append(scores.mean()) # 視覺化模組,k值value和accuracy 的關係圖 plt.plot(k_range, k_scores) plt.xlabel('Value of K for KNN') plt.ylabel('Cross_Validation Accuracy') plt.show()
輸出影象: