日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习】交叉验证筛选参数K值和weight

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】交叉验证筛选参数K值和weight 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

交叉驗證

導包

import numpy as npfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn import datasets#model_selection :模型選擇 # cross_val_score: 交叉 ,validation:驗證(測試) #交叉驗證 from sklearn.model_selection import cross_val_score

讀取datasets中鳶尾花(yuan1wei3hua)數據

X,y= datasets.load_iris(True) X.shape

(150, 4)

一般情況不會超過數據的開方數

#參考 150**0.5 #K 選擇 1~13

12.24744871391589

knn = KNeighborsClassifier()score = cross_val_score(knn,X,y,scoring='balanced_accuracy',cv=11) score.mean()

0.968181818181818

應用cross_val_score篩選 n_neighbors k值

errors =[] for k in range(1,14):knn = KNeighborsClassifier(n_neighbors=k)score = cross_val_score(knn,X,y, scoring='accuracy',cv = 6).mean()#誤差越小 說明K選擇越合適 越好errors.append(1-score)import matplotlib.pyplot as plt %matplotlib inline#k = 11時 誤差最小 說明最合適的k值 plt.plot(np.arange(1,14),errors)

[<matplotlib.lines.Line2D at 0x17ece9ff0b8>]

應用cross_val_score篩選 weights

weights =['uniform','distance']for w in weights:knn = KNeighborsClassifier(n_neighbors = 11,weights= w)print(w,cross_val_score(knn,X,y, scoring='accuracy',cv = 6).mean())

uniform 0.98070987654321
distance 0.9799382716049383

模型如何調參的,參數調節

result = {} for k in range(1,14):for w in weights:knn = KNeighborsClassifier(n_neighbors=k,weights=w)sm = cross_val_score(knn,X,y,scoring='accuracy',cv=6).mean()result[w+str(k)] =sma =result.values() list(a)np.array(list(a)).argmax()

20

list(result)[20]

‘uniform11’

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【机器学习】交叉验证筛选参数K值和weight的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。