python的隨機森林模型調參


一、一般的模型調參原則

1、調參前提:模型調參其實是沒有定論,需要根據不同的數據集和不同的模型去調。但是有一些調參的思想是有規律可循的,首先我們可以知道,模型不准確只有兩種情況:一是過擬合,而是欠擬合。過擬合是指模型過於復雜,欠擬合是指模型過於簡單。

2、查找資料:調參時應該知道每一個參數的默認值是多少,其增大或者減小會使模型更加復雜還是更加簡單。

3、調參可以使用兩種方法:1、學習曲線 2、網格搜索

  • 學習曲線只能對參數一個一個進行調整,可以觀察參數的增大或者減小具體對模型產生怎樣的影響;網格搜索可以同時對多個參數進行調整,也可以對單個參數進行調整。

  • 我們可以查找資料???找出模型的各個參數對於模型的影響大小的順序,先對影響較大的參數進行調整,再對影響較小的參數進行調整。——由粗到精

  • 調參時應該確定模型處於方差-偏差曲線的左側還是右側,即模型是過擬合還是欠擬合。

 

4、學習曲線

有一些參數,我們不知道它對於模型有着怎樣的影響,也不知道參數的合適范圍,這時我們可以用學習曲線的方法進行調參。先按照step取較大值進行調,然后在可能最優的范圍內縮小步長,進一步確定最佳參數。

5、網格搜索

網格搜索既可以一次對多個參數進行調參,也可以一次只調一個參數。但是在一次調多個參數時太費時間,且在調出的參數不是十分好的時候,我們因為不知道其調參的原理因此不知道該如何調整。

二、隨機森林的調參——對於乳腺癌數據集

1、首先先調既不會增加模型復雜度,又對模型影響最大的參數n_estimators(學習曲線)

2、找到最佳值后,調max_depth(單個網格搜索,也可以用學習曲線)  

  一般根據數據的大小來進行一個試探,乳腺癌數據很小,所以可以采用1~10,或者1~20這樣的試探但對於像digit recognition那樣的大型數據來說,我們應該嘗試30~50層深度(或許還不足夠)

3、接下來依次對各個參數進行調參。

注:對於大型數據集,max_leaf_nodes可以嘗試從1000來構建,先輸入1000,每100個葉子一個區間,再逐漸縮小范圍

    對於min_samples_splitmin_samples_leaf,一般是從他們的最小值開始向上增加10或20,面對高維度高樣本量數據,如果不放心,也可以直接+50,對於大型數據,可能需要200~300的范圍,如果調整的時候發現准確率無論如何都上不

  來,那可以放心大膽調一個很大的數據,大力限制模型的復雜度

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM