隨機森林 2

2021-09-12 02:26:06 字數 1779 閱讀 8436

選擇根節點

當樹的高度越大的時候,說明劃分的效果越細緻,切分的節點越多,導致一直切分,學到一些雜訊點,樹太高的原因是切的節點太多了。所以可能發生過擬合的現象。

1 如何選擇根節點:分別以4個節點為根節點,計算熵值。先計算熵,然後各自的熵值乘以概率,最後在求和計算熵值之和。然後在和最初的熵值0.940比較。

2 熵值下降了,分類越純,分類效果越明顯。

3 資訊增益就是衡量分類效果的乙個指標,用分類之後的熵值和最初的熵值做差表示資訊增益。

4  資訊增益越大越好,本來就是分類之後資訊熵的差。

5  資訊增益率:

決策樹的構建過程就是遞迴過程,不斷用同樣的方法找根節點。

評價函式,在葉子節點的純度越好,評價函式越小越好。

基尼係數為0時候,表示已經分類徹底。

避免過擬合方法

α表示引數,tleaf表示葉子節點的個數 ct表示基尼係數=基尼係數乘以樣本數目。

後剪枝的過程就是乙個葉子節點在分支前後的ct值大小比較,然後選取基尼係數小來決定是是否**。

隨機森林:

隨機操作:1:有放回取樣,資料樣本選擇的隨機性,在原始的數量集合指定乙個隨機選擇的比例,會使選不到異常點的隨機森林的效果更好。

2:特徵選擇的隨機性

最後在特徵資料集輸入到隨機森林後,最後的決策分類結果用投票打分的方法進行決策判斷的結果是否正確。

當值的選取比如年齡進行劃分的時候採用貪婪演算法。

選取連續值的分界點採用貪婪演算法

隨機森林的引數選擇:

最主要的兩個引數是n_estimators和max_features。 

n_estimators:表示森林裡樹的個數。理論上是越大越好。但是伴隨著就是計算時間的增長。但是並不是取得越大就會越好,**效果最好的將會出現在合理的樹個數。 

max_features:隨機選擇特徵集合的子集合,並用來分割節點。子集合的個數越少,方差就會減少的越快,但同時偏差就會     增加的越快。根據較好的實踐經驗。

如果是回歸問題則: max_features=n_features,

如果是分類問題則max_features=sqrt(n_features)。

如果想獲取較好的結果,必須將max_depth=none,同時min_sample_split=1。 

同時還要記得進行cross_validated(交叉驗證),除此之外記得在random forest中,bootstrap=true。但在extra-trees中,bootstrap=false。

總結:我對隨機森林的理解,首先,根據已經有的資料進行決策樹的建立,先根據原始資料集計算最初的資訊熵。資訊熵的建立通過最後的結果進行計算。比如在上面的例子中,很具去不去打球的比例計算出最初的資訊熵a,然後根據資料中四個屬性類別分別進行資訊熵的求解,求解出在該類別資訊熵下的值,然後選擇資訊熵最大的作為根節點,進行遞迴操作,這樣可以根據屬性構建出決策樹。

參考部落格 

2 隨機森林 Random Forest

今天學了菜菜第二章,隨機森林。順便回顧了昨天學的決策樹。具體學到了什麼 總結到下面用 和注釋的形式給出,相當於給自己理清楚思路。from sklearn.model selection import train test split xtrain,xtest,ytrain,ytest train t...

隨機森林隨機 三

2018年7月22日 陣雨 感冒發燒喉嚨疼,只因為一杯正常冰的奶蓋!以後得少喝加冰的東西了.前面說的是整合學習的兩種形式,這跟隨機森林有啥關係呢?隨機森林是bagging的乙個擴充套件變體.簡單的來說,當bagging演算法中的base learner為決策樹並在訓練決策樹的過程中加入隨機屬性選擇,...

隨機森林演算法

random forest是加州大學伯克利分校的breiman leo和adele cutler於2001年發表的 中提到的新的機器學習演算法,可以用來做分類,聚類,回歸,和生存分析,這裡只簡單介紹該演算法在分類上的應用。random forest 隨機森林 演算法是通過訓練多個決策樹,生成模型,然...