ML《決策樹(二)C4.5》

星海千尋發表於2020-12-27

上一篇我們學習的ID3演算法呢,有一些缺點。

1:它只能處理離散值。

2:容易過擬合,因為我們拿到了樣本,總是希望最後得到的樣本是非常純的,所以我那個我那個造成了過擬合,訓練樣本擬合很好,泛化能力降低。

3:在每一次的節點選擇中啊,它總是傾向於某個屬性值種類多的特徵。

這裡新增一個缺點
4:就是沒有對缺失值的處理。

因此我們有另外一種決策樹的演算法,C4.5,它也是決策樹演算法。
我們主要來看看C4.5針對ID3的缺點進行的處理和改進吧。

====華麗分割線

其中三個呢,比較好理解,我就先寫出來:
1)對於上述ID3缺點二,C4.5採用的是後剪枝策略,也就是在形成了一顆決策樹後,對其做精簡化處理,用遞迴的方式從低往上針對每一個非葉子節點,評估用一個最佳葉子節點去代替這課子樹是否有益。如果剪枝後與剪枝前相比其錯誤率是保持或者下降,則這棵子樹就可以被替換掉。C4.5 通過訓練資料集上的錯誤分類數量來估算未知樣本上的錯誤率。

後剪枝決策樹的欠擬合風險很小,泛化效能往往比較好。但同時其訓練時間會大的多。

2)對於上述ID3缺點一,C4.5採用的是連續數值離散化的方式,假設在樣本集合D中,某個特徵屬性A有M個取值,那麼將這個M的取值進行排序,分別計算相鄰兩個數值的平均值,於是我們可以得到M-1個點,這M-1個點作為劃分點,分別計算器作為二分類時候的資訊增益,並選擇資訊增益最大的劃分點來作為該連續特徵的二元分類離散點。

舉個例子,屬性A有M個取值,從小到大是:
V1,V2,V3,。。。。。。,VM
在這裡插入圖片描述

劃分點Q點有M-1個,該特徵A則有2M-2個二元分類點,分別是:
數值小於Q1的範圍,數值大於等於Q1的範圍;
數值小於Q2的範圍,數值大於等於Q2的範圍;
數值小於Q3的範圍,數值大於等於Q3的範圍;
數值小於Q4的範圍,數值大於等於Q4的範圍;
。。。。。。。。
分別計算其資訊熵,也就是離散值取V等於某個值,連續值取V大於或者小於某個劃分點。
這就是連續紙的離散化。

3)對於ID3的缺點四,C4.5採用了估計的方式,當然了,不是估計缺失值。

我們要解決兩個小問題
一個問題是一個屬性值有缺失,這個屬性值應該是歸於那個子節點呢(計算資訊熵有用);
另一個問題是,屬性值缺失,那麼這個屬性的固有資訊熵怎麼計算(後面要說到資訊增益率,要用這個值)。

C4.5是這麼處理的,對於問題一,將樣本同時劃分到所有子節點,不過要調整樣本的權重值,其實也就是以不同概率劃分到不同節點中,也就是按照概率猜測出其屬性值咯。

對於問題二,既然這個值缺失了,那麼就用沒缺失的樣本來估計下這個屬性的固有資訊熵咯。

4)對於ID3的缺點3,這也是致命的缺點,C4.5採用了資訊增益率的方式。
在這裡插入圖片描述

C4.5呢在ID3的基礎上作了很多的缺點彌補,但是自身以天然存在不足:
1:C4.5只能用於分類問題
2:引入的計算量大,還有排序操作,CPU和記憶體資源消耗大。

相關文章