更新時間:2021-10-29 來源:黑馬程序員 瀏覽量:
什么是交叉驗證?
交叉驗證就是將拿到的訓練數(shù)據(jù),分為訓練和驗證集。以下圖為例:將數(shù)據(jù)分成4份,其中一份作為驗證集。然后經(jīng)過4次(組)的測試,每次都更換不同的驗證集。即得到4組模型的結(jié)果,取平均值作為最終結(jié)果。又稱4折交叉驗證。
我們之前知道數(shù)據(jù)分為訓練集和測試集,但是為了讓從訓練得到模型結(jié)果更加準確。做以下處理
1.訓練集:訓練集+驗證集
2.測試集:測試集
什么是網(wǎng)格搜索(Grid Search)?
通常情況下,有很多參數(shù)是需要手動指定的(如k-近鄰算法中的K值),這種叫超參數(shù)。但是手動過程繁雜,所以需要對模型預設幾種超參數(shù)組合。每組超參數(shù)都采用交叉驗證來進行評估。最后選出最優(yōu)參數(shù)組合建立模型。
交叉驗證,網(wǎng)格搜索(模型選擇與調(diào)優(yōu))API:
sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None)
1.對估計器的指定參數(shù)值進行詳盡搜索
2.estimator:估計器對象
3.param_grid:估計器參數(shù)(dict){“n_neighbors”:[1,3,5]}
4.cv:指定幾折交叉驗證
5.fit:輸入訓練數(shù)據(jù)
6.score:準確率
結(jié)果分析:
1.bestscore__:在交叉驗證中驗證的最好結(jié)果
2.bestestimator:最好的參數(shù)模型
3.cvresults:每次交叉驗證后的驗證集準確率結(jié)果和訓練集準確率結(jié)