1. 程式人生 > 其它 >【轉載】EXCEL VBA 通過VBA中的Union合併多個Range選擇區域

【轉載】EXCEL VBA 通過VBA中的Union合併多個Range選擇區域

什麼是決策樹?

關鍵字:熵、Gini係數CART、資訊增益ID3、資訊增益率C4.5、決策樹剪枝、隨機森林

決策樹(decision tree)是一種基本的分類與迴歸方法

根節點 age<15,非葉子節點 is male,葉子節點娃娃頭(結果值),分支(Y ,N)

如何利用資料構造一個決策樹?各個節點應該用哪一個特徵和怎樣排列?

根據熵的大小(混亂程度:越大越混亂)

熵定義為資訊的期望值。在資訊理論與概率統計中,熵是表示隨機變數不確定性的度量。如果待分類的事務可能劃分在多個分類之中,則符號xi的資訊定義為

p(xi):xi 發生的概率(0,1),p(xi)越小,發生的概率小,熵越大,反之熵越小。

根據Gini係數(原理跟熵一樣,Pk 發生的概率)

得到高度最矮的決策樹

資訊增益(越大越好)

類似table 2的一張表裡面,篩選出outlook=sunny的全部詞條,分別再次計算(類似遞迴)

資訊增益缺點:資料的有些特徵對最終結果並沒有直接影響,但是資訊增益在計算的時候缺將其包含在內,這就引起了最終資料的偏差(比如序號1-N)

對應資訊增益缺點:資訊增益率=資訊增益/自身熵值

如何判斷這個決策樹的好壞:評價函式

t是每一個葉子節點,H(t)熵值,Nt 當前葉子節點的權重值(葉子節點裡麵包含多少個類別) 【評價函式越小越好】

連續值:比如說age<=30, 劃分離散值 5-10,11-15,16-20,21-25,26-30 等等分支

決策樹剪枝:

不剪枝的話可能會出現過擬合,在訓練集上可能達到100%的效果,樹比較高,分支多(考慮每一個樣本),在預測樣本上效果就不是很好。

預剪枝:在構建決策樹的時候,計劃提前停止,比如深度D,定義D>4 的時候就結束構造決策樹;或者一個節點當前樣本數量min_samples<30就停止這個節點往下的分裂延伸

後剪枝:決策樹構建後,再進行裁剪(用到下面的公式)

α是權重(越大的話修剪越多,葉子節點數越少) C(T)是上面提到過的評價函式 T_leaf(葉子節點個數)

隨機森林

有放回取樣:資料【1,2,3,4】 -> 取樣1 1 3 3 4 2 3 4 。

行成不同的N棵樹,分別投喂同樣的test資料,將結果取眾數輸出

隨機:

1.資料選擇隨機:有放回取樣,指定隨機的取樣比例,只選擇所有樣本中的一部分(機率過濾噪點)

2.關於特徵隨機:可能有些特徵表達效果很差,通過隨機有的能過濾掉這些差特徵,選擇一定比例的特徵(無放回)