機器學習—決策樹(id3,c4.5)演算法解析
label 機器學習 決策樹 解析
決策樹實現思路:假設有已知的資料集x【例如某些人的集合,資料內容包括用於描述他們的特徵屬性及特徵屬性值,如性別(男|女),年齡(整數),收入(較低|中等|較高)等】,以及資料集的分類標籤y【是否是某俱樂部的成員(是|否)】,對資料集做特徵屬性測試【在當前可選的特徵屬性中選取最佳**屬性,其評判標準為特徵屬性的度量值,一般越大越好,根據該度量值的計算不同,將決策樹演算法分為id3和c4.5】,對資料集做屬性**,其子類可再進行屬性測試和屬性**,直至可選屬性為空或者子類不能分;不理解的概念參看本節備註
決策樹是一種貪心演算法,每次選取的分割資料的特徵都是當前的最佳選擇,並不關心是否達到最優。很容易在訓練資料中生成複雜的樹結構,造成過擬合(overfitting)。剪枝可以緩解過擬合的負作用,常用方法是限制樹的高度、葉子節點中的最少樣本數量。
1 id3
id3演算法的核心思路是,在決策樹的整體框架下,利用資訊增益來作為屬性度量值,取最大資訊增益對應的特徵屬性作為最佳**屬性對樣本集做屬性**;
以下引自:
【id3決策樹可以有多個分支,但是不能處理特徵值為連續的情況。id3演算法十分簡單,核心是根據「最大資訊熵增益」原則選擇劃分當前資料集的最好特徵,資訊熵是資訊理論裡面的概念,是資訊的度量方式,不確定度越大或者說越混亂,熵就越大。在建立決策樹的過程中,根據特徵屬性劃分資料,使得原本「混亂」的資料的熵(混亂度)減少,按照不同特徵劃分資料熵減少的程度會不一樣。在id3中選擇熵減少程度最大的特徵來劃分資料(貪心),也就是「最大資訊熵增益」原則】h(
x)=−
∑i=1
lpilog(p
i); pi
=|xi
||x|
;分子表示資料集x中屬於最終標籤下第i類的樣本數,分母表示x的總樣本數,l表示最終標籤數(如是否為俱樂部成員,則l=2);
期望資訊: ha
(x)=
∑j=1
la|x
j||x
|h(x
j);a表示某一特徵屬性,la表示a特徵屬性下的類數(如收入,則la=3);
期望增益: ga
in(a
,x)=
h(x)
−ha(
x);
選取期望增益最大的特徵屬性為最佳**屬性
缺點:資訊增益選取屬性時容易偏向取值多的屬性。因為屬性值多的feature會有相對較大的資訊增益:【資訊增益反映的給定乙個條件以後不確定性減少的程度,必然是分得越細的資料集確定性更高,也就是條件熵越小,資訊增益越大】
2 c4.5
c4.5演算法的核心思路是,在決策樹的整體框架下,利用資訊增益比來作為屬性度量值,取最大資訊增益比對應的特徵屬性作為最佳**屬性對樣本集做屬性**,為id3的改進版;
特點:
1. 資訊增益比率通過引入乙個被稱作**資訊(split information)的項來懲罰取值較多的feature。
2. c4.5還彌補了id3中不能處理特徵屬性值連續的問題。具體流程如下:
將樣本資料該屬性a上的具體數值按照公升序排列(total個值),在上一步生成的序列值中生成total-1個分割點。第i個分割點的取值為ai和ai+1的均值,每個分割點都將屬性序列劃分為兩個子集。計算每個分割點的資訊增益,得到total-1個資訊增益。對**點的資訊增益進行修正:減去log2(n-1)/|d|,其中n為可能的**點個數,d為資料集合大小。選擇修正後的資訊增益值最大的分類點作為該屬性的最佳分類點。計算最佳**點的資訊增益率作為該屬性的度量。選擇度量最大的屬性作為分類屬性。
infera(
x)=−
∑j=1
la|x
j||x
|log2(
|xj|
|x|)
; 資訊增益比: ga
in_r
atio
=gai
n(a,
x)infera(
x)選取期望增益比最大的特徵屬性為最佳**屬性
備註:
什麼是當前可選的特徵屬性:在第一次屬性測試時,所有屬性性別,年齡,收入等都為可選屬性,若第一次選擇收入作為最佳**屬性,則第二次屬性測試的可選屬性就只有性別,年齡等了;
什麼是屬性**:就是根據選取出來的最佳**屬性對資料集進行分類,加入最佳屬性為性別,則將資料集中的人按男女分成兩個子類;
什麼是子類不能分:某一子類中的所有樣本都屬於同乙個標籤(如,全屬於該俱樂部的成員);
當可選屬性為空時但子類仍能再分怎麼辦:一般採用多數表決,即使用該子類中標記最多的標籤作為該類的標籤;
可參考的同類博文:
1. 2.
python實現
機器學習 決策樹 ID3, C4 5
概念 決策樹 節點間的組織方式像一棵倒樹,以attribute 為節點,以 attribute 的不同值為分支。重點概念 1.資訊熵 熵是無序性 或不確定性 的度量指標。假如事件a 的全概率劃分是 a1,a2,an 每部分發生的概率是 p1,p2,pn 那資訊熵定義為 通常以 2為底數,所以資訊熵的...
機器學習 決策樹ID3 C4 5和CART
決策樹又稱為判定樹,是運用於分類的一種樹結構,其中的每個內部節點代表對某一屬性的一次測試,每條邊代表乙個測試結果,葉節點代表某個類或類的分布。決策樹的決策過程需要從決策樹的根節點開始,待測資料與決策樹中的特徵節點進行比較,並按照比較結果選擇選擇下一比較分支,直到葉子節點作為最終的決策結果。常見的決策...
決策樹演算法 ID3 C4 5和CART
線性模型與決策樹模型的對比 線性模型是將所有的特徵轉變為概率,並對所有的特徵加權求和,從而對模型進行分類,只能找到線性分割,而決策樹模型是乙個乙個特徵的進行處理,對每乙個特徵進行劃分,可以找到非線性分割 id3演算法是一種貪心演算法,用來構建決策樹,id3起源於概念學習系統,以資訊熵的下降速度為選取...