python實現(xiàn)K折交叉驗證
本文實例為大家分享了python實現(xiàn)K折交叉驗證的具體代碼,供大家參考,具體內(nèi)容如下
用KNN算法訓練iris數(shù)據(jù),并使用K折交叉驗證方法找出最優(yōu)的K值
import numpy as np from sklearn import datasets from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import KFold # 主要用于K折交叉驗證 # 導入iris數(shù)據(jù)集 iris = datasets.load_iris() X = iris.data y = iris.target print(X.shape,y.shape) # 定義想要搜索的K值,這里定義8個不同的值 ks = [1,3,5,7,9,11,13,15] # 進行5折交叉驗證,KFold返回的是每一折中訓練數(shù)據(jù)和驗證數(shù)據(jù)的index # 假設數(shù)據(jù)樣本為:[1,3,5,6,11,12,43,12,44,2],總共10個樣本 # 則返回的kf的格式為(前面的是訓練數(shù)據(jù),后面的驗證集): # [0,1,3,5,6,7,8,9],[2,4] # [0,1,2,4,6,7,8,9],[3,5] # [1,2,3,4,5,6,7,8],[0,9] # [0,1,2,3,4,5,7,9],[6,8] # [0,2,3,4,5,6,8,9],[1,7] kf = KFold(n_splits = 5, random_state=2001, shuffle=True) # 保存當前最好的k值和對應的準確率 best_k = ks[0] best_score = 0 # 循環(huán)每一個k值 for k in ks: curr_score = 0 for train_index,valid_index in kf.split(X): # 每一折的訓練以及計算準確率 clf = KNeighborsClassifier(n_neighbors=k) clf.fit(X[train_index],y[train_index]) curr_score = curr_score + clf.score(X[valid_index],y[valid_index]) # 求一下5折的平均準確率 avg_score = curr_score/5 if avg_score > best_score: best_k = k best_score = avg_score print("current best score is :%.2f" % best_score,"best k:%d" %best_k) print("after cross validation, the final best k is :%d" %best_k)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python虛擬機字節(jié)碼教程之控制流實現(xiàn)詳解
在本篇文章當中主要給大家分析 python 當中與控制流有關(guān)的字節(jié)碼,通過對這部分字節(jié)碼的了解,我們可以更加深入了解 python 字節(jié)碼的執(zhí)行過程和控制流實現(xiàn)原理2023-04-04python的pytest框架之命令行參數(shù)詳解(下)
這篇文章主要介紹了python的pytest框架之命令行參數(shù)詳解,今天將繼續(xù)更新其他一些命令選項的使用,和pytest收集測試用例的規(guī)則,需要的朋友可以參考下2019-06-06python實現(xiàn)在多維數(shù)組中挑選符合條件的全部元素
今天小編就為大家分享一篇python實現(xiàn)在多維數(shù)組中挑選符合條件的全部元素,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Python 使用Numpy對矩陣進行轉(zhuǎn)置的方法
今天小編就為大家分享一篇Python 使用Numpy對矩陣進行轉(zhuǎn)置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01PyCharm運行Python代碼時出現(xiàn)"未找到模塊"錯誤解決步驟
在使用python的過程中經(jīng)常會遇到一個問題,就是叫什么名字的模塊未發(fā)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于PyCharm運行Python代碼時出現(xiàn)"未找到模塊"錯誤的解決步驟,需要的朋友可以參考下2023-11-11Python實現(xiàn)統(tǒng)計英文單詞個數(shù)及字符串分割代碼
這篇文章主要介紹了Python實現(xiàn)統(tǒng)計英文單詞個數(shù)及字符串分割方法,本文分別給出代碼實例,需要的朋友可以參考下2015-05-05如何基于Python實現(xiàn)數(shù)字類型轉(zhuǎn)換
這篇文章主要介紹了如何基于Python實現(xiàn)數(shù)字類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-02-02