1. 程式人生 > >機器學習分類演算法---決策樹

機器學習分類演算法---決策樹

決策樹:

樹結構,可以是二叉樹或非二叉樹,資料結構中的概念,只不過加上了判斷條件。

資訊熵:

1948年,夏農提出了“資訊熵”的概念。一條資訊的資訊量大小和它的不確定性有直接的關係,即對一件事,你不知道的越多,這件事對於你來說資訊熵越大,因為你需要學的東西更多。

             計算:   H(x) = E[I(xi)] = E[ log(2,1/p(xi)) ] = -∑p(xi)log(2,p(xi)) (i=1,2,..n)        //前面的負號是因為0<P<1

決策樹歸納演算法(ID3):

資訊獲取量(Gain,增量),資訊量(info):

                           Gain(A)=Info(B)-Info_A(B)        

A屬性的資訊獲取量的值就等於,不按任何屬性進行分類的時候的資訊量加上按A這個屬性進行分類的時候的資訊量

一般按照獲取量從大到小的順序進行樹的建立 

停止節點建立的條件有以下幾點:

          1)給定節點的所有樣本屬性都屬於同一種標記的時候

          2)當沒有剩餘屬性用來進一步劃分樣本時,就停止節點的建立,採用多數表決

          3)分枝

C4.5演算法:

       相比於ID3,它用資訊增益率來選擇屬性。目標是監督學習,給定一個數據集,其中的每一個元組都能用一組屬性值來描述,每一個元組屬於一個互斥的類別中的某一類

       C4.5只適合於能夠駐留於記憶體的資料集,當訓練集大得無法在記憶體容納時程式無法執行

        資訊增益率GainRatio:

                                             

 

                                 

              

CART演算法:

1)當CART是分類樹時,採用GINI值作為節點分裂的依據;當CART是迴歸樹時,採用樣本的最小方差作為節點分裂的依據;

2)CART是一棵二叉樹。

3)CART演算法仍然使用後剪枝。在樹的生成過程中,多展開一層就會有多一些的資訊被發現,CART演算法執行到不能再長出分支為止,從而得到一棵最大的決策樹。然後對這棵大樹進行剪枝

樹剪枝葉 (避免overfitting):為了處理資料中的噪聲和離群點導致的過分擬合問題

     1)先剪枝: 當分到一定程度,就不向下增長樹了。

     2)後剪枝:  把樹完全建好後,根據類的純度來進行樹的裁剪。

決策樹的優點:

     直觀,便於理解,小規模資料集有效     

 決策樹的缺點:

     處理連續變數不好;類別較多時,錯誤增加的比較快;可規模性一般。