模型選擇與調優
常見方法:
交叉驗證(cross validation)
超參數搜索-網格搜索(Grid Search)
1、交叉驗證(cross validation)
交叉驗證:將拿到的訓練數據,分爲訓練和驗證集。以下圖爲例:將數據分成4份,其中一份作爲驗證集。然後經過4次(組)的測試,每次都更換不同的驗證集。即得到4組模型的結果,取平均值作爲最絡結果。又稱4折交叉驗證。實際業務中常使用10折交叉驗證。
我們在做數據集劃分是時候將數據分爲訓練集和測試集,但是爲了讓從訓練得到模型結果更加準確。做以下處理:
·訓練舞:訓練集+驗證集
·測試集:測試集
交叉驗證目的:爲了讓被評估的模型更加準確可信
2、超參數搜索-網格搜索(Grid Search)
通常情況下,有很多參數是需要手動指定的(如k-近鄰算法中的K值),這種叫超參數。
但是手動過程繁雜,所以需要對模型預設幾種超參數組合,每組超參數都採用交叉驗證來進行評估。
最後選出最優參數組合建立模型。
如:如k-近鄰算法中,
選擇K=3-->模型1--交叉驗證(準確率)
選擇K=5-->模型2--交叉驗證(準確率)
選擇K=7-->模型3--交叉驗證(準確率)
選擇K=9-->模型4--交叉驗證(準確率)
選擇K=11-->模型5--交叉驗證(準確率)
......
最終選定最優模型的過程。
3、模型選擇與調優API
sklearn.model_selection.GridSearchCV(estimator,param_grid=None,cv=None)#網格搜索和交叉驗證
對估計器的指定參數值進行詳盡搜索
。estimator:估計器對象
。param_grid:估計器參數(dic){"n_neighbors":[1,3,5,...]}
。cv:指定幾折交叉驗證
.fit():輸入訓練數據
.score():準確率
結果分析:
·最佳參數:best_params_
·最佳結果:best_score_
·最佳估計器:best_estimator_
·交叉驗證結果:cv_results_
案例:https://blog.csdn.net/weixin_41685388/article/details/104443542