隨機森林的參數說明


A. max_features

隨機森林允許單個決策樹使用特征的最大數量。 Python為最大特征數提供了多個可選項。 下面是其中的幾個:

Auto/None :簡單地選取所有特征,每顆樹都可以利用他們。這種情況下,每顆樹都沒有任何的限制。

sqrt :此選項是每顆子樹可以利用總特征數的平方根個。 例如,如果變量(特征)的總數是100,所以每顆子樹只能取其中的10個。“log2”是另一種相似類型的選項。

0.2:此選項允許每個隨機森林的子樹可以利用變量(特征)數的20%。如果想考察的特征x%的作用, 我們可以使用“0.X”的格式。

max_features如何影響性能和速度?

增加max_features一般能提高模型的性能,因為在每個節點上,我們有更多的選擇可以考慮。 然而,這未必完全是對的,因為它降低了單個樹的多樣性,而這正是隨機森林獨特的優點。 但是,可以肯定,你通過增加max_features會降低算法的速度。 因此,你需要適當的平衡和選擇最佳max_features。
B. n_estimators

在利用最大投票數或平均值來預測之前,你想要建立子樹的數量。 較多的子樹可以讓模型有更好的性能,但同時讓你的代碼變慢。 你應該選擇盡可能高的值,只要你的處理器能夠承受的住,因為這使你的預測更好更穩定。
C. min_sample_leaf

如果您以前編寫過一個決策樹,你能體會到最小樣本葉片大小的重要性。 葉是決策樹的末端節點。 較小的葉子使模型更容易捕捉訓練數據中的噪聲。 一般來說,我更偏向於將最小葉子節點數目設置為大於50。在你自己的情況中,你應該盡量嘗試多種葉子大小種類,以找到最優的那個。

 

              1) RF划分時考慮的最大特征數max_features: 可以使用很多種類型的值,默認是"None",意味着划分時考慮所有的特征數;如果是"log2"意味着划分時最多考慮log2Nlog2N 個特征;如果是"sqrt"或者"auto"意味着划分時最多考慮N−−√N 個特征。如果是整數,代表考慮的特征絕對數。如果是浮點數,代表考慮特征百分比,即考慮(百分比xN)取整后的特征數。其中N為樣本總特征數。一般來說,如果樣本特征數不多,比如小於50,我們用默認的"None"就可以了,如果特征數非常多,我們可以靈活使用剛才描述的其他取值來控制划分時考慮的最大特征數,以控制決策樹的生成時間。

    2) 決策樹最大深度max_depth: 默認可以不輸入,如果不輸入的話,決策樹在建立子樹的時候不會限制子樹的深度。一般來說,數據少或者特征少的時候可以不管這個值。如果模型樣本量多,特征也多的情況下,推薦限制這個最大深度,具體的取值取決於數據的分布。常用的可以取值10-100之間。

    3) 內部節點再划分所需最小樣本數min_samples_split: 這個值限制了子樹繼續划分的條件,如果某節點的樣本數少於min_samples_split,則不會繼續再嘗試選擇最優特征來進行划分。 默認是2.如果樣本量不大,不需要管這個值。如果樣本量數量級非常大,則推薦增大這個值。

    4) 葉子節點最少樣本數min_samples_leaf: 這個值限制了葉子節點最少的樣本數,如果某葉子節點數目小於樣本數,則會和兄弟節點一起被剪枝。 默認是1,可以輸入最少的樣本數的整數,或者最少樣本數占樣本總數的百分比。如果樣本量不大,不需要管這個值。如果樣本量數量級非常大,則推薦增大這個值。

    5)葉子節點最小的樣本權重和min_weight_fraction_leaf:這個值限制了葉子節點所有樣本權重和的最小值,如果小於這個值,則會和兄弟節點一起被剪枝。 默認是0,就是不考慮權重問題。一般來說,如果我們有較多樣本有缺失值,或者分類樹樣本的分布類別偏差很大,就會引入樣本權重,這時我們就要注意這個值了。

    6) 最大葉子節點數max_leaf_nodes: 通過限制最大葉子節點數,可以防止過擬合,默認是"None”,即不限制最大的葉子節點數。如果加了限制,算法會建立在最大葉子節點數內最優的決策樹。如果特征不多,可以不考慮這個值,但是如果特征分成多的話,可以加以限制,具體的值可以通過交叉驗證得到。

    7) 節點划分最小不純度min_impurity_split:  這個值限制了決策樹的增長,如果某節點的不純度(基於基尼系數,均方差)小於這個閾值,則該節點不再生成子節點。即為葉子節點 。一般不推薦改動默認值1e-7。

    上面決策樹參數中最重要的包括最大特征數max_features, 最大深度max_depth, 內部節點再划分所需最小樣本數min_samples_split和葉子節點最少樣本數min_samples_leaf。


免責聲明!

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



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