機器學習模型選擇與調優 ---交叉驗證、超參數搜索-網格搜索

模型選擇與調優

常見方法:
    交叉驗證(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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章