ID3算法 改進的C4.5算法 決策樹算法

ID3 是建立了概念學習系統(CLS)算法

決策樹是對數據進行分類,以此達到預測的目的。該決策樹方法先根據訓練集數據形成決策樹,如果該樹不能對所有對象給出正確的分類,那麼選擇一些例外加入到訓練集數據中,重複該過程一直到形成正確的決策集。決策樹代表着決策集的樹形結構。
決策樹由決策結點、分支和葉子組成。決策樹中最上面的結點爲根結點,每個分支是一個新的決策結點,或者是樹的葉子。每個決策結點代表一個問題或決策,通常對應於待分類對象的屬性。每一個葉子結點代表一種可能的分類結果。沿決策樹從上到下遍歷的過程中,在每個結點都會遇到一個測試,對每個結點上問題的不同的測試輸出導致不同的分支,最後會到達一個葉子結點,這個過程就是利用決策樹進行分類的過程,利用若干個變量來判斷所屬的類別。

決策樹算法的優點如下:

1

)分類精度高;

2

)成的模式簡單;

3

對噪聲數據有很好的健壯性

決策樹算法的優點如下:

1

)分類精度高;

2

)成的模式簡單;

3

對噪聲數據有很好的健壯性

決策樹算法的優點如下:

1

)分類精度高;

2

)成的模式簡單;

3

對噪聲數據有很好的健壯性

決策樹算法的優點如下:(1)分類精度高;(2)成的模式簡單;(3)對噪聲數據有很好的健壯性
ID3算法是由Quinlan首先提出的。該算法是以信息論爲基礎,以信息熵信息增益度爲衡量標準,從而實現對數據的歸納分類。
以下是一些信息論的基本概念:
定義1:若存在n個相同概率的消息,則每個消息的概率p是1/n,一個消息傳遞的信息量爲-Log2(1/n)
定義2:若有n個消息,其給定概率分佈爲P=(p1,p2…pn),則由該分佈傳遞的信息量稱爲P的熵,記爲
定義3:若一個記錄集合T根據類別屬性的值被分成互相獨立的類C1C2..Ck,則識別T的一個元素所屬哪個類所需要的信息量爲Info(T)=I(p),其中P爲C1C2…Ck的概率分佈,即P=(|C1|/|T|,…..|Ck|/|T|)
定義4:若我們先根據非類別屬性X的值將T分成集合T1,T2…Tn,則確定T中一個元素類的信息量可通過確定Ti的加權平均值來得到,即Info(Ti)的加權平均值爲:
Info(X, T)=(i=1 to n 求和)((|Ti|/|T|)Info(Ti))
定義5:信息增益度是兩個信息量之間的差值,其中一個信息量是需確定T的一個元素的信息量,另一個信息量是在已得到的屬性X的值後需確定的T一個元素的信息量,信息增益度公式爲:
Gain(X, T)=Info(T)-Info(X, T)
ID3算法計算每個屬性的信息增益,並選取具有最高增益的屬性作爲給定集合的測試屬性。對被選取的測試屬性創建一個節點,並以該節點的屬性標記,對該屬性的每個值創建一個分支據此劃分樣本.

最早的決策時算法是由

Hunt

等人於

1966

年提出的

CLS

。當前最有影

響的決策樹算法是

Quinlan

1986

年提出的

ID3

1993

年提出的

C4.5

ID3

只能處理離散型描述屬性,它選擇信息增益最大的屬性劃分訓練樣本,

其目的是進行分枝時系統的熵最小,從而提高算法的運算速度和精確度。

ID3

算法的主要缺陷是,用信息增益作爲選擇分枝屬性的標準時,偏向於取

值較多的屬性,而在某些情況下,這類屬性可能不會提供太多有價值的信

息。

C4.5

ID3

算法的改進算法,不僅可以處理離散型描述屬性,還能處

理連續性描述屬性。

C4.5

採用了信息增益比作爲選擇分枝屬性的標準,彌

補了

ID3

算法的不足。

最早的決策時算法是由

Hunt

等人於

1966

年提出的

CLS

。當前最有影

響的決策樹算法是

Quinlan

1986

年提出的

ID3

1993

年提出的

C4.5

ID3

只能處理離散型描述屬性,它選擇信息增益最大的屬性劃分訓練樣本,

其目的是進行分枝時系統的熵最小,從而提高算法的運算速度和精確度。

ID3

算法的主要缺陷是,用信息增益作爲選擇分枝屬性的標準時,偏向於取

值較多的屬性,而在某些情況下,這類屬性可能不會提供太多有價值的信

息。

C4.5

ID3

算法的改進算法,不僅可以處理離散型描述屬性,還能處

理連續性描述屬性。

C4.5

採用了信息增益比作爲選擇分枝屬性的標準,彌

補了

ID3

算法的不足。

最早的決策時算法是由Hunt等人於1966年提出的CLS。當前最有影響的決策樹算法是Quinlan於1986年提出的ID3和1993年提出的C4.5。
ID3只能處理離散型描述屬性,它選擇信息增益最大的屬性劃分訓練樣本,其目的是進行分枝時系統的熵最小,從而提高算法的運算速度和精確度。
數據描述
所使用的樣本數據有一定的要求,ID3是:
描述-屬性-值相同的屬性必須描述每個例子和有固定數量的價值觀。
預定義類-實例的屬性必須已經定義的,也就是說,他們不是學習的ID3。
離散類-類必須是尖銳的鮮明。連續類分解成模糊範疇(如金屬被“努力,很困難的,靈活的,溫柔的,很軟”都是不可信的。
足夠的例子——因爲歸納概括用於(即不可查明)必須選擇足夠多的測試用例來區分有效模式並消除特殊巧合因素的影響。


ID3算法的主要缺陷是,用信息增益作爲選擇分枝屬性的標準時,偏向於取值較多的屬性,而在某些情況下,這類屬性可能不會提供太多有價值的信息。
基本算法: 
1.選擇一個屬性放置在根節點,爲每個可能的屬性值產生一個分支 
2.將樣本劃分成多個子集,一個子集對應於一個分支 
3.在每個分支上遞歸地重複這個過程,僅使用真正到達這個分支的樣本
 4.如果在一個節點上的所有樣本擁有相同的類別,即停止該部分樹的擴展 
構造決策樹(集合劃分)時選擇屬性:     .ID3: Information Gain         .C4.5: Gain Ratio               .CART: Gini Index 
屬性選擇
ID3決定哪些屬性如何是最好的。一個統計特性,被稱爲信息增益,使用熵得到給定屬性衡量培訓例子帶入目標類分開。信息增益最高的信息(信息是最有益的分類)被選擇。爲了明確增益,我們首先從信息論借用一個定義,叫做熵。每個屬性都有一個熵。

  ID3算法思想: 
(1) 初始化決策樹T爲只含一個樹根(X,Q),其中X是全體樣本集,Q爲全體屬性集。
 (2) if(T中所有葉節點(X’,Q’)都滿足X屬於同一類或Q’爲空)then 算法停止;
 (3) else     {任取一個不具有(2)中所述狀態的葉節點(X’,Q’);
 (4) for each Q’中的屬性A do 計算信息增益gain(A,X’); 
(5)     選擇具有最高信息增益的屬性B作爲節點(X’,Q’)的測試屬性;
 (6) for each B的取值bi do 
        {從該節點(X’, Q’)伸出分支,代表測試輸出B=bi; 
        求得X中B值等於bi的子集Xi,並生成相應的葉節點(Xi’,Q’-{B});} 
(7) 轉(2);}
 ID3算法的問題: 
    (1)信息增益的計算依賴於特徵數目較多的特徵,而屬性取值最多的屬性並不一定最優。  
   (2)ID3是非遞增算法。 
    (3)ID3是單變量決策樹(在分枝節點上只考慮單個屬性),許多複雜概念的表達困難,屬性相互關係強調不夠,容易導致決策樹中子樹的重複或有些屬性在決策樹的某一路徑上被檢驗多次


一個nonincremental ID3算法,推導其階級意義從一組固定的訓練資料中。一個增量算法修改當前的概念界定,如果有必要,與一種新的樣品。這個班由ID3是感應,那是,給定一小組訓練資料中,特定的課程由ID3預計未來所有的情況下工作。未知的分佈必須相同的測試用例。感應類無法證明工作在每種情況下,因爲他們可以無限的情況下進行分類。注意,ID3(或任何可能misclassify歸納算法)數據。


    C4.5既可以處理離散型描述屬性,也可以處理連續性描述屬性。C4.5採用了信息增益比作爲選擇分枝屬性的標準,彌補了ID3算法的不足。在選擇某節點上的分枝屬性時,對於離散型描述屬性,C4.5的處理方法與ID3相同,按照該屬性本身的取值個數進行計算;對於某個連續性描述屬性Ac,假設在某個結點上的數據集的樣本數量爲total,C4.5將作以下處理。

  將該結點上的所有數據樣本按照連續型描述屬性的具體數值,由小到大進行排序,得到屬性值的取值序列{A1c,A2c,……Atotalc}。 
 在取值序列中生成total-1個分割點。第i(0<i<total)個分割點的取值設置爲Vi=(Aic+A(i+1)c)/2,它可以將該節點上的數據集劃分爲兩個子集。 
 從total-1個分割點中選擇最佳分割點。對於每一個分割點劃分數據集的方式,C4.5計算它的信息增益比,並且從中選擇信息增益比最大的分割點來劃分數據集。

 (3)採用了一種後剪枝方法    避免樹的高度無節制的增長,避免過度擬合數據, 該方法使用訓練樣本集本身來估計剪枝前後的誤差,從而決定是否真正剪枝。

4)對於缺失值的處理 
在某些情況下,可供使用的數據可能缺少某些屬性的值。假如〈x,c(x)〉是樣本集S中的一個訓練實例,但是其屬性A的值A(x)未知。處理缺少屬性值的一種策略是賦給它結點n所對應的訓練實例中該屬性的最常見值;另外一種更復雜的策略是爲A的每個可能值賦予一個概率。例如,給定一個布爾屬性A,如果結點n包含6個已知A=1和4個A=0的實例,那麼A(x)=1的概率是0.6,而A(x)=0的概率是0.4。於是,實例x的60%被分配到A=1的分支,40%被分配到另一個分支。這些片斷樣例(fractional examples)的目的是計算信息增益,另外,如果有第二個缺少值的屬性必須被測試,這些樣例可以在後繼的樹分支中被進一步細分。

C4.5就是使用這種方法處理缺少的屬性值。 

C4.5算法繼承了ID3算法的優點,並在以下幾方面對ID3算法進行了改進: 
    1) 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足; 
    2) 在樹構造過程中進行剪枝;   

  3) 能夠完成對連續屬性的離散化處理;   

  4) 能夠對不完整數據進行處理。 

  C4.5算法的優缺點 
優點:產生的分類規則易於理解,準確率較高。 

缺點:在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效。此外,C4.5只適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行

發佈了26 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章