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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

算法笔记(23)网格搜索及Python代码实现

發布時間:2023/12/14 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法笔记(23)网格搜索及Python代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網格搜索,搜索的是參數,即在指定的參數范圍內,按步長依次調整參數,利用調整的參數訓練學習器,從所有的參數中找到在驗證集上精度最高的參數,這其實是一個訓練和比較的過程。本節介紹三種網格搜索方法:簡單網格搜索、與交叉驗證結合的網格搜索、使用GridSearchCV的網格搜索。

網格搜索方法?

簡單網格搜索

for循環遍歷全部的參數設置,并找出最高分和對應的參數。

X_train, X_test, y_train, y_test=train_test_split(wine.data, wine.target,random_state=38) best_score = 0 for alpha in [0.01,0.1,1.0,10.0]:for max_iter in [100,1000,5000,10000]:lasso = Lasso(alpha=alpha,max_iter=max_iter)lasso.fit(X_train, y_train)score = lasso.score(X_test, y_test)if score > best_score:best_score = scorebest_parameters={'alpha':alpha,'最大迭代次數':max_iter}print("模型最高分為:{:.3f}".format(best_score)) print('最佳參數設置:{}'.format(best_parameters))

模型最高分為:0.889
最佳參數設置:{'alpha': 0.01, '最大迭代次數': 100}

與交叉驗證結合的網格搜索

交叉驗證法和網格搜索法結合起來找到模型的最優參數。只用先前拆分好的X_train來進行交叉驗證,以便我們找到最佳參數之后,再用來擬合X_test來看一下模型的得分。

for alpha in [0.01,0.1,1.0,10.0]:for max_iter in [100,1000,5000,10000]:lasso = Lasso(alpha=alpha,max_iter=max_iter)scores = cross_val_score(lasso, X_train, y_train, cv=6)score = np.mean(scores)if score > best_score:best_score = scorebest_parameters={'alpha':alpha, '最大迭代數':max_iter}print("模型最高分為:{:.3f}".format(best_score)) print('最佳參數設置:{}'.format(best_parameters))

模型最高分為:0.865
最佳參數設置:{'alpha': 0.01, '最大迭代數': 100}

lasso = Lasso(alpha=0.01, max_iter=100).fit(X_train, y_train) print('測試數據集得分:{:.3f}'.format(lasso.score(X_test,y_test)))

測試數據集得分:0.819

使用GridSearchCV的網格搜索

GridSearchCV本身就是將交叉驗證和網格搜索封裝在一起。GridSearchCV需要反復建模,所需要的計算時間往往更長。

from sklearn.model_selection import GridSearchCV params = {'alpha':[0.01,0.1,1.0,10.0],'max_iter':[100,1000,5000,10000]} grid_search = GridSearchCV(lasso,params,cv=6) grid_search.fit(X_train, y_train) print('模型最高分:{:.3f}'.format(grid_search.score(X_test, y_test))) print('最優參數:{}'.format(grid_search.best_params_))

模型最高分:0.819
最優參數:{'alpha': 0.01, 'max_iter': 100}

print('交叉驗證最高得分:{:.3f}'.format(grid_search.best_score_))

交叉驗證最高得分:0.865
分析:GridSearchCV有一個屬性best_score_,這個屬性會存儲模型在交叉驗證中所得的最高分,而不是在測試數據集上的得分。

想要完整代碼的朋友,可toutiao搜索“編程研究坊”關注后s信我,回復“算法筆記23“獲取

總結

以上是生活随笔為你收集整理的算法笔记(23)网格搜索及Python代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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