python 數據分析算法(決策樹)


決策樹基於時間的各個判斷條件,由各個節點組成,類似一顆樹從樹的頂端,然后分支,再分支,每個節點由響的因素組成

決策樹有兩個階段,構造和剪枝

構造: 構造的過程就是選擇什么屬性作為節點構造,通常有三種節點

1. 根節點:就是樹的最頂端,最開始那個節點  (選擇哪些屬性作為根節點)

2. 內部節點: 就是樹中間的那些節點    (選擇哪些屬性作為子節點)

3. 葉節點: 就是樹最底部的節點,也就是決策的結果(什么時候停止並得到目標狀態,葉節點)

剪枝: 實現不需要太多的判斷,同樣可以得到不錯的結果,防止過擬合現象發生

過擬合百度百科直觀了解一下(https://baike.baidu.com/item/%E8%BF%87%E6%8B%9F%E5%90%88/3359778)

簡單介紹就是為了得到一致假設而使假設變得過度嚴格稱為過擬合。

  預剪枝是在決策樹構造前進行剪枝,在構造過程中對節點進行評估,如果某個節點的划分,在驗證集中不能帶來准確性的提升,划分則無意義當成葉節點不做划分

  后剪枝是在生成決策樹后再進行剪枝,通常會從決策樹的葉節點開始,逐層向上對每個節點進行評估,減掉與保留差准確性差別不大,或者減掉改節點字數,能在驗證集中帶來准確性提升,就可以剪枝。

信息熵: 表示了信息的不確定度,下面是計算公式,信息熵越大純度越低

當不確定性越大,包含的信息量就越大,信息熵就越高

(log 函數圖像也可以理解 ,下面函數0到1 之間對應的是概率,當概率接近1的時候,說明純度很高(概率),縱坐標值很小,

信息熵很小,當概率接近0的時候,純度很低,信息熵就很大了,注意,這里是負值,公式前面也有個負號,然后合並就為正)

 

 

信息增益:ID3 算法   指划分可以帶來純度的提高,信息熵的下降,父節點的信息熵減去所有子節點的信息熵,計算過程中,會計算子節點歸一化的信息熵   下面是計算公式

公式中D是父親節點,Di 是子節點,Gain(D,a) 中的a作為D節點的屬性選擇

歸一化子節點的信息熵,就是公式中的Di/D    信息增益最大可以作為父親節點,再重復進行判斷到最后得出

C4.5算法

1 采用信息增益率   信息增益率 = 信息增益/屬性熵    信息增益的同事,屬性熵也會變大

2 采用悲觀剪枝  ID3 中容易產生過擬合現象, 這個方法可以提升決策樹的泛華能力,屬於后剪枝的一種,比較剪枝前后這個節點的分類錯誤率來覺得是否對其進行剪枝

3 離散化處理連續屬性   C4.5可以處理連續屬性的情況,對連續屬性進行離散化處理,就是對值進行計算,而不是分為幾等分(高,中,底) C4.5   選擇具有最高信息增益的划分所對應的閾值

4 處理缺失值  C4.5 也可以處理,假如數據集存在較少的缺失值,  對子節點歸一化計算信息增益,然后計算信息增益率,由於有對應的缺失值,所以信息增益率*占權比重,(比如7個數據,少了一個*6/7)所以在屬性確實的情況下也可以計算信息增益

ID3和C4.5比較,  ID3算法簡單,確定是對噪聲敏感,少量錯誤會產生決策樹的錯誤,C4.5 進行了改進,長上面可以看出,但是C4.5 需要對數據集進行多次掃描,算法效率相對較低

 


免責聲明!

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



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