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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

机器学习中的参数调整

發布時間:2023/12/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习中的参数调整 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總第102篇

前言

我們知道每個模型都有很多參數是可以調節的,比如SVM中使用什么樣的核函數以及C值的大小,決策樹中樹的深度等。在特征選好、基礎模型選好以后我們可以通過調整模型的這些參數來提高模型準確率。每個模型有很多參數,而每個參數又有很多不同的取值,我們該怎么調,最簡單的一個方法就是一個一個試。sklearn中提供了這樣的庫代替了我們手動去試的過程,就是GridSearchCV,他會自己組合不同參數的取值,然后輸出效果最好的一組參數。

GridSearchCV參數解釋

GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, \n_jobs=1, iid=True, refit=True, cv=None, \verbose=0, pre_dispatch=‘2*n_jobs’, error_score=’raise’, \return_train_score=’warn’)

estimator:所使用的基礎模型,比如svc
param_grid:是所需要的調整的參數,以字典或列表的形式表示
scoring:準確率評判標準
n_jobs:并行運算數量(核的數量 ),默認為1,如果設置為-1,則表示將電腦中的cpu全部用上
iid:假設數據在每個cv(折疊)中是相同分布的,損失最小化是每個樣本的總損失,而不是折疊中的平均損失。
refit:默認為True,程序將會以交叉驗證訓練集得到的最佳參數,重新對所有可用的訓練集與開發集進行,作為最終用于性能評估的最佳模型參數。
cv:交叉驗證折疊數,默認是3,當estimator是分類器時默認使用StratifiedKFold交叉方法,其他問題則默認使用KFold
verbose:日志冗長度,int類型,0:不輸出訓練過程,1:偶爾輸出,>1:對每個子模型都輸出
pre_dispatch:控制job數量,避免job過多出現內存錯誤

GridSearchCV對象

cv_results_:用來輸出cv結果的,可以是字典形式也可以是numpy形式,還可以轉換成DataFrame格式
best_estimator_:通過搜索參數得到的最好的估計器,當參數refit=False時該對象不可用
best_score_:float類型,輸出最好的成績
best_params_:通過網格搜索得到的score最好對應的參數

GridSearchCV方法

decision_function(X):返回決策函數值(比如svm中的決策距離)
predict_proba(X):返回每個類別的概率值(有幾類就返回幾列值)
predict(X):返回預測結果值(0/1)
score(X, y=None):返回函數
get_params(deep=True):返回估計器的參數
fit(X,y=None,groups=None,fit_params):在數據集上運行所有的參數組合
transform(X):在X上使用訓練好的參數

GridSearchCV實例

from sklearn import svm, datasets from sklearn.model_selection import GridSearchCV iris = datasets.load_iris() parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]} svc = svm.SVC() clf = GridSearchCV(svc, parameters) clf.fit(iris.data, iris.target) ------------------------------------------------------ GridSearchCV(cv=None, error_score='raise',estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False),fit_params={}, iid=True, n_jobs=1,param_grid={'kernel': ('linear', 'rbf'), 'C': [1, 10]},pre_dispatch='2*n_jobs', refit=True, return_train_score=True,scoring=None, verbose=0)

clf.cv_results_

我們可以看到,cv_result一共有四組,這正是兩個kernel和兩個C的隨機組合成四組。

clf.best_estimator_

clf.best_params_

clf.best_params_

注:本方法只適用于數據量較小的模型,不適合數據量過大的模型。

你還可以看:

機器學習模型效果評估

機器學習中非平衡數據處理

機器學習中的特征選擇

機器學習中的交叉驗證

總結

以上是生活随笔為你收集整理的机器学习中的参数调整的全部內容,希望文章能夠幫你解決所遇到的問題。

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