1. 程式人生 > >C4.5 演算法對於連續性屬性的處理方法介紹

C4.5 演算法對於連續性屬性的處理方法介紹

C4.5既可以處理離散型屬性,也可以處理連續性屬性。在選擇某節點上的分枝屬性時,對於離散型描述屬性,C4.5的處理方法與ID3相同。

對離散分佈、且取值數目>=3的特徵的處理:

 C4.5決策樹可以支援多叉樹的形式,因此對於數目大於等於3的離散特徵,可以採用多分叉的形式

對於連續分佈的特徵,其處理方法是:

先把連續屬性轉換為離散屬性再進行處理。雖然本質上屬性的取值是連續的,但對於有限的取樣資料它是離散的,如果有N條樣本,那麼我們有N-1種離散化的方法:<=vj的分到左子樹,>vj的分到右子樹。計算這N-1種情況下最大的資訊增益率。另外,對於連續屬性先進行排序(升序),只有在決策屬性(即分類發生了變化)發生改變的地方才需要切開,這可以顯著減少運算量。經證明,在決定連續特徵的分界點時採用增益這個指標(因為若採用增益率,splittedinfo影響分裂點資訊度量準確性,若某分界點恰好將連續特徵分成數目相等的兩部分時其抑制作用最大),而選擇屬性的時候才使用增益率這個指標能選擇出最佳分類特徵

對連續屬性的處理如下:

1.      對特徵的取值進行升序排序

2.      兩個特徵取值之間的中點作為可能的分裂點,將資料集分成兩部分,計算每個可能的分裂點的資訊增益(InforGain)。優化演算法就是隻計算分類屬性發生改變的那些特徵取值。

3.      選擇修正後資訊增益(InforGain)最大的分裂點作為該特徵的最佳分裂點

4.      計算最佳分裂點的資訊增益率(Gain Ratio)作為特徵的Gain Ratio。注意,此處需對最佳分裂點的資訊增益進行修正:減去log2(N-1)/|D|(N是連續特徵的取值個數,D是訓練資料數目,此修正的原因在於:當離散屬性和連續屬性並存時,C4.5演算法傾向於選擇連續特徵做最佳樹分裂點)