機器學習之邏輯回歸(4)-超參數模型優化

機器學習之邏輯迴歸(4)-超參數模型優化


什麼是超參數?

參數是機器學習算法的關鍵。

機器學習中有兩類參數,模型參數和模型超參數,他們在作用、來源等方面都有所不同,而模型超參數常被稱為模型參數,很容易對初學者造成混淆。

二者本質上的區別:

模型參數是模型表達式的參數變量,可以通過訓練並用數據估計得到的模型參數

模型超參數是模型外部的配置,必須手動的參數,模型無法學習。

可以通過設置不同的超參數來獲取不同的模型參數,也可以得到不同的準確率,精準率和召回率,

邏輯迴歸模型中的超參數最常用的如下:

Penalty:懲罰項也稱正則項,L1或L2範數, 默認L2,是為了防止出現模型過擬合現,是一種類似的稀疏矩陣,L1讓模型參數稀疏化,L2讓模型參數儘量小,關於L1和L2範數的正則項來防止過擬合,請參考之前的文章

C:正則項權重,C越大正則項的權重越小,模型容易出現過擬合,反之正則項的權重越大,容易出現欠擬合,默認為1.0

在scikit-learn裡面,超參數是在模型建立時設置的。在前面的例子中,我們沒有為LogisticRegression()設置參數,是因為用的都是默認值。但是有時候默認值不一定是最優的。網格搜索(Grid search)就是用來確定最優超參數的方法。其原理就是選取可能的參數不斷運行模型獲取最佳效果。網格搜索用的是窮舉法,其缺點在於即使每個超參數的取值範圍都很小,計算量也是巨大的。不過這是一個並行問題,參數與參數彼此獨立,計算過程不需要同步,所有很多方法都可以解決這個問題。scikit-learn有GridSearchCV()函數解決這個問題:

機器學習之邏輯迴歸(4)-超參數模型優化

GridSearchCV()函數的參數有待評估模型pipeline,超參數詞典parameters,效果評價指標scoring(默認是accuracy,準確率),n_jobs是指併發進程最大數量,設置為-1表示使用所有CPU核心進程

代碼如下:

機器學習之邏輯迴歸(4)-超參數模型優化

可以得到最優的參數組合:

機器學習之邏輯迴歸(4)-超參數模型優化

根據優化結果,調節模型超參數,能提高模型的準確率

機器學習之邏輯迴歸(4)-超參數模型優化


分享到:


相關文章: