演算法梳理(三)決策樹演算法梳理

2021-09-16 14:09:11 字數 2751 閱讀 6446

目錄

1. 資訊理論基礎(熵 聯合熵 條件熵 資訊增益 基尼不純度)

2.決策樹的不同分類演算法(id3演算法、c4.5、cart分類樹)的原理及應用場景

3. 回歸樹原理

4. 決策樹防止過擬合手段

5. 模型評估

6. sklearn引數詳解,python繪製決策樹

熵:資訊是很抽象的概念,一直都無法估計資訊量,直到2023年,夏農提出了「資訊熵」的概念,指出了「資訊是用來消除隨機不確定性的東西」,解決了對資訊的量化度量問題。

熵是用來衡量乙個系統混論程度的物理量,代表乙個系統中蘊含多少資訊量,資訊量越大表明乙個系統不確定性就越大,就存在越多的可能性。

聯合熵:兩個隨機變數x,y的聯合分布,可以形成聯合熵(joint entropy),用h(x, y)表示。即:h(x, y) = -σp(x, y) lnp(x, y)

條件熵:h(x|y)

資訊增益:

劃分前樣本集合d的熵是一定的 ,entroy(前),使用某個特徵a劃分資料集d,計算劃分後的資料子集的熵 entroy(後)

資訊增益 =  entroy(前) -  entroy(後)

資訊增益比:資訊增益比 = 懲罰引數 * 資訊增益

基尼不純度:基尼指數(基尼不純度)= 樣本被選中的概率 * 樣本被分錯的概率

id3演算法

id3由ross quinlan在2023年提出。id3決策樹可以有多個分支,但是不能處理特徵值為連續的情況。決策樹是一種貪心演算法,每次選取的分割資料的特徵都是當前的最佳選擇,並不關心是否達到最優。在id3中,每次根據「最大資訊熵增益」選取當前最佳的特徵來分割資料,並按照該特徵的所有取值來切分,也就是說如果乙個特徵有4種取值,資料將被切分4份,一旦按某特徵切分後,該特徵在之後的演算法執行中,將不再起作用,所以有觀點認為這種切分方式過於迅速。id3演算法十分簡單,核心是根據「最大資訊熵增益」原則選擇劃分當前資料集的最好特徵,資訊熵是資訊理論裡面的概念,是資訊的度量方式,不確定度越大或者說越混亂,熵就越大。在建立決策樹的過程中,根據特徵屬性劃分資料,使得原本「混亂」的資料的熵(混亂度)減少,按照不同特徵劃分資料熵減少的程度會不一樣。在id3中選擇熵減少程度最大的特徵來劃分資料(貪心),也就是「最大資訊熵增益」原則。下面是計算公式,建議看鏈結計算資訊上增益的例項。

c4.5演算法

c4.5是ross quinlan在2023年在id3的基礎上改進而提出的。.id3採用的資訊增益度量存在乙個缺點,它一般會優先選擇有較多屬性值的feature,因為屬性值多的feature會有相對較大的資訊增益?(資訊增益反映的給定乙個條件以後不確定性減少的程度,必然是分得越細的資料集確定性更高,也就是條件熵越小,資訊增益越大).為了避免這個不足c4.5中是用資訊增益比率(gain ratio)來作為選擇分支的準則。資訊增益比率通過引入乙個被稱作**資訊(split information)的項來懲罰取值較多的feature。除此之外,c4.5還彌補了id3中不能處理特徵屬性值連續的問題。但是,對連續屬性值需要掃瞄排序,會使c4.5效能下降,

cart樹

cart(classification and regression tree)分類回歸樹由l.breiman,j.friedman,r.olshen和c.stone於2023年提出。id3中根據屬性值分割資料,之後該特徵不會再起作用,這種快速切割的方式會影響演算法的準確率。cart是一棵二叉樹,採用二元切分法,每次把資料切成兩份,分別進入左子樹、右子樹。而且每個非葉子節點都有兩個孩子,所以cart的葉子節點比非葉子多1。相比id3和c4.5,cart應用要多一些,既可以用於分類也可以用於回歸。cart分類時,使用基尼指數(gini)來選擇最好的資料分割的特徵,gini描述的是純度,與資訊熵的含義相似。cart中每一次迭代都會降低gini係數。下圖顯示資訊熵增益的一半,gini指數,分類誤差率三種評價指標非常接近。回歸時使用均方差作為loss function。基尼係數的計算與資訊熵增益的方式非常類似,公式如下

為成功構建以分段常數為葉節點的樹,需要度量出資料的一致性。第3章使用樹進行分類,會在給定節點時計算資料的混亂度。那麼如何計算連續型數值的混亂度呢?在這裡,計算連續型數值的混亂度是非常簡單的。首先計算所有資料的均值,然後計算每條資料的值到均值的差值。為了對正負差值同等看待,一般使用絕對值或平方值來代替上述差值。上述做法有點類似於前面介紹過的統計學中常用的方差計算。唯一不同就是,方差是平方誤差的均值(均方差),而這裡需要的是平方誤差的總值(總方差)。總方差可以通過均方差乘以資料集中樣本點的個數來得到。

參考:

預剪枝:是在決策樹的生成過程中,對每個結點在劃分前先進行估計,若當前結點的劃分不能帶來決策樹泛化效能提公升,則停止劃分即結束樹的構建並將當前節點標記為葉結點;

後剪枝:是先從訓練集生成一棵完整的決策樹,然後自底向上地對葉結點進行考察,若將該結點對應的子樹替換為葉結點能帶來決策樹泛化為效能提公升,則將該子樹替換為葉結點。泛化效能的提公升可以使用交叉驗證資料來檢查修剪的效果,通過使用交叉驗證資料,測試擴充套件節點是否會帶來改進。如果顯示會帶來改進,那麼我們可以繼續擴充套件該節點。但是,如果精度降低,則不應該擴充套件,節點應該轉換為葉節點。

參考:

決策樹防止過擬合

分類樹:accuracy、precision、recall、f1 score、roc曲線和auc、pr曲線

回歸樹:平均絕對誤差mae、均方誤差mse、r-squared

決策樹演算法梳理

熵 entropy 在資訊理論與概率統計中,熵 entropy 是表示隨機變數不確定性的度量。設x是乙個取有限個值的離散隨機變數,其概率分布為 則隨機變數x的熵定義為 熵只依賴於x的分布,而與x的取值無關,所以也可將x的熵記作h 即 熵取值最大,隨機變數不確定性最大。條件熵 設有隨機變數 x,y 其...

決策樹演算法梳理

熵 又稱為自資訊,度量隨機變數的不確定性。純度 聯合熵 聯合熵是描述一對隨機變數平均所需要的資訊量 條件熵 h y x 表示在已知隨機變數 x 的條件下,隨機變數 y 的不確定性 資訊增益 以某特徵劃分資料集前後的熵的差值 基尼不純度 指將來自集合中的某種結果隨機應用在集合中,某一資料項的預期誤差率...

決策樹演算法梳理

1.資訊理論基礎 資訊熵 資訊熵是度量樣本的集合純度最常用的一種指標。在資訊理論和概率統計中,熵是表示隨機變數不確定性的度量。聯合熵 兩個隨機變數x,y的聯合分布,可以形成聯合熵joint entropy,用h x,y 表示。條件熵 設有隨機變數 x,y 其聯合概率分布為 條件熵h y x 表示在已...