11_模型的选择与调优,交叉验证,超参数搜索-网格搜索sklearn.model_selection.GridSearchCV
生活随笔
收集整理的這篇文章主要介紹了
11_模型的选择与调优,交叉验证,超参数搜索-网格搜索sklearn.model_selection.GridSearchCV
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、交叉驗證
交叉驗證:為了讓被評估的模型更加準確可信。
交叉驗證:將拿到的數據,分為訓練和驗證集。以下圖為例:將數據分成5份,其中一份作為驗證集。然后經過5次(組)的測試,每次都更換不同的驗證集。即得到5組模型的結果,取平均值作為最終結果。又稱5折交叉驗證。
2、超參數搜索-網格搜索
通常情況下,有很多參數是需要手動指定的(如k-近鄰算法中的K值),這種叫超參數。但是手動過程繁雜,所以需要對模型預設幾種超參數組合。每組超參數都采用交叉驗證來進行評估。最后選出最優參數組合建立模型。
3、超參數搜索-網格搜索API
sklearn.model_selection.GridSearchCV
class sklearn.model_selection.GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, n_jobs=None, iid=’warn’, refit=True, cv=’warn’, verbose=0, pre_dispatch=‘2*n_jobs’, error_score=’raise-deprecating’, return_train_score=’warn’) 用途:對估計器的指定參數值進行詳盡搜索estimator:估計器對象,sklearn里面封裝的模型(這被假定為實現SCIKIT學習估計器接口。)param_grid:估計器參數(dict){"n_neighbors":[1,3,5]},值為字典或者列表,字典里面的鍵代表estimator模型中的可以設置的參數,值是GridSearchCV要去遍歷優化的具體值。比如具體的GridSearchCV函數結構如下:svr = GridSearchCV(SVR(), param_grid={"kernel": ("linear", 'rbf'),"C": np.logspace(-3, 3, 7), "gamma": np.logspace(-3, 3, 7)})第一個參數是建立的SVR模型(estimator);第二個參數是SVR()模型中,允許的參數。kernel(核函數):linear(線性核)、rbf(徑向基核);C(懲罰系數):設置范圍為從1.e-03到1.e+03的等比數列,共7個數;gamma(核系數):同上。SVR()詳細參數可見:https://blog.csdn.net/qq_24852439/article/details/85305317 scoring:模型評價方法,也是按照上面參數的方法,給定一個列表或者字典形式。評價方法可以參照sklearn里面的metric ( string, callable, list/tuple, dict or None, default: None)fit_params: dict, optional 傳遞給FIT方法的參數。自0.19版本以來,Fista PARAMS作為一個構造函數參數在0.19版本中被棄用,將在0.21中刪除。n_jobs:并行運行的核數。默認值為1。-1的時候運行你所有的CPU核pre_dispatch:int, or string, optional 控制并行執行期間分派的作業數量。減少這個數目可以避免在比CPU能夠處理的更多任務被分配時避免內存消耗的爆炸。這個參數可以是:沒有,在這種情況下,所有的工作都立即被創造和產生。使用此操作輕量級和快速運行的作業,以避免由于按需生成作業而導致的延遲。一個int,給出產生的總工作的確切數量。一個字符串,將表達式作為NSJOB的函數,如“2×N-JOB”iid : boolean, default=True 如果是真的,假設數據在褶皺上是相同分布的,損失最小的是每個樣本的總損失,而不是整個褶皺的平均損失。cv:指定幾折交叉驗證 (int, cross-validation generator or an iterable, optional),確定交叉驗證拆分策略。CV的可能輸入是:沒有,使用默認的3倍交叉驗證;整數:以指定的數量。refit:boolean,or string,default=True 在整個數據集上使用最佳找到的參數重新估計。 對于多指標評價,這需要是一個字符串,使用記分器來尋找最佳的參數,用于重新估計估計器的末尾。重新編譯的估計器在BestyRealSturix屬性中可用,并且允許直接在GRIDSCACHCV實例上使用預測。此外,對于多度量評估,屬性BestJoixxx,BestJoSeCype和BestHythPrimeSt*將僅在重新設置時可用,所有這些都將被確定為特定的記分器。verbos:integer 控制冗長:越高,信息越多。error_score : ‘raise’ (default) or numeric 如果在估計器擬合中出現錯誤,則將其賦值給分數。如果設置為“raise”,則會引發錯誤。如果給定數值,則FitFailedWarning被提升。此參數不影響重新配置步驟,它總是會引發錯誤。return_train_score:boolean, optionalfit:輸入訓練數據score:準確率結果分析:best_score_ : 在交叉驗證中測試的最好結果best_estimator_ : 最好的參數模型cv_results_ : 每次交叉驗證后的測試集準確率結果和訓練集準確率結果。打個賞唄,您的支持是我堅持寫好博文的動力。
總結
以上是生活随笔為你收集整理的11_模型的选择与调优,交叉验证,超参数搜索-网格搜索sklearn.model_selection.GridSearchCV的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A股虚拟现实概念股票 必须和投资者们好好
- 下一篇: Ranger中对hive添加policy