基本原理
隨機森林(random forest)基本原理參考: 引數
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。
隨機森林隨機 三
2018年7月22日 陣雨 感冒發燒喉嚨疼,只因為一杯正常冰的奶蓋!以後得少喝加冰的東西了.前面說的是整合學習的兩種形式,這跟隨機森林有啥關係呢?隨機森林是bagging的乙個擴充套件變體.簡單的來說,當bagging演算法中的base learner為決策樹並在訓練決策樹的過程中加入隨機屬性選擇,...
隨機森林演算法
random forest是加州大學伯克利分校的breiman leo和adele cutler於2001年發表的 中提到的新的機器學習演算法,可以用來做分類,聚類,回歸,和生存分析,這裡只簡單介紹該演算法在分類上的應用。random forest 隨機森林 演算法是通過訓練多個決策樹,生成模型,然...
理解隨機森林
理解隨機森林 隨機森林利用隨機的方式將許多決策樹組合成乙個森林,每個決策樹在分類的時候投票決定測試樣本的最終類別。下面我們再詳細說一下隨機森林是如何構建的。隨機森林主要包括4個部分 隨機選擇樣本 隨機選擇特徵 構建決策樹 隨機森林投票分類。給定乙個訓練樣本集,數量為n,我們使用有放回取樣到n個樣本,...