超参数调整——网格搜索
生活随笔
收集整理的這篇文章主要介紹了
超参数调整——网格搜索
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 超參數(hyperparameter)
在機器學習中,超參數是在開始學習過程之前設置值的參數。
- 定義關于模型的更高層次的概念,如復雜性或學習能力。
- 不能直接從標準模型訓練過程中的數據中學習,需要預先定義。
- 可以通過設置不同的值,訓練不同的模型和選擇更好的測試值來決定。
一些示例:
- 樹的數量或樹的深度
- 矩陣分解中潛在因素的數量
- 學習率
- 深層神經網絡隱藏層數
- k-means聚類中的簇數
2. 網格搜索
網格搜索法本質上是一種窮舉法。
sklearn中提供的網格搜索方法:GridSearchCV, 它能夠對estimator中我們指定的參數進行詳盡搜索。
2.1 sklearn.model_selection.GridSearchCV
class sklearn.model_selection.GridSearchCV(estimator, param_grid, *, scoring=None, n_jobs=None, refit=True, cv=None, verbose=0, pre_dispatch=‘2*n_jobs’, error_score=nan, return_train_score=False)
主要參數:
- estimator:估計器對象。
- param_grid:以參數名稱 ( str) 作為鍵的字典和要嘗試作為值的參數設置列表,或此類字典的列表,在這種情況下,將探索列表中每個字典跨越的網格。
- cv:交叉驗證生成器。默認為5折交叉。
3.代碼實例
利用決策樹對紅酒數據集進行分類的問題。
下面對sklearn決策樹中的“criterion”, “max_depth”, “min_samples_leaf”三個屬性的參數進行最優搜索:
from sklearn import tree from sklearn.datasets import load_wine from sklearn.model_selection import GridSearchCVwine = load_wine()clf = tree.DecisionTreeClassifier()param_grid = {"criterion": ["entropy", "gini"],"max_depth": [3, 4, 5, 6],"min_samples_leaf": [5, 6, 7, 8], }grid = GridSearchCV(clf, param_grid) grid.fit(wine.data, wine.target)print(grid.best_params_, # 相關參數grid.best_score_, # 評分grid.best_estimator_, # 估計器grid.best_index_) # 索引輸出
{'criterion': 'entropy', 'max_depth': 4, 'min_samples_leaf': 5} 0.9165079365079365 DecisionTreeClassifier(criterion='entropy', max_depth=4, min_samples_leaf=5) 4百度百科
總結
以上是生活随笔為你收集整理的超参数调整——网格搜索的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现外挂自动学习网络课程实例
- 下一篇: mentohust找不到服务器,ment