语音识别学习日志 2019-7-16 语音识别基础知识准备5 {决策树算法(ID3、 C4.5、 CART)}
決策樹算法(ID3、 C4.5、 CART)
決策樹學習采用的是自頂向下的遞歸方法,其基本思想是以信息熵為度量構造一顆熵值下降最快的樹,到葉子節點處,熵值為0。其具有可讀性、分類速度快的優點,是一種有監督學習。
決策樹呈樹形結構,在分類問題中,表示基于特征對實例進行分類的過程。學習時,利用訓練數據,根據損失函數最小化的原則建立決策樹模型;預測時,對新的數據,利用決策模型進行分類。
決策樹的分類:決策樹可以分為兩類,主要取決于它目標變量的類型。(1)離散性決策樹:離散性決策樹,其目標變量是離散的,如性別:男或女等;
決策樹的構造過程一般分為3個部分,分別是特征選擇、決策樹構建和決策樹裁剪。
(1)特征選擇:
特征選擇表示從眾多的特征中選擇一個特征作為當前節點分裂的標準,如何選擇特征有不同的量化評估方法,從而衍生出不同的決策樹,如ID3(通過信息增益選擇特征)、C4.5(通過信息增益比選擇特征)、CART(通過Gini指數選擇特征)等。
目的(準則):使用某特征對數據集劃分之后,各數據子集的純度要比劃分前的數據集D的純度高(也就是不確定性要比劃分前數據集D的不確定性低)
(2)決策樹的生成
根據選擇的特征評估標準,從上至下遞歸地生成子節點,直到數據集不可分則停止決策樹停止生長。這個過程實際上就是使用滿足劃分準則的特征不斷的將數據集劃分成純度更高,不確定行更小的子集的過程。對于當前數據集的每一次劃分,都希望根據某個特征劃分之后的各個子集的純度更高,不確定性更小。
(3)決策樹的裁剪
決策樹容易過擬合,一般需要剪枝來縮小樹結構規模、緩解過擬合。
(4)剪枝處理
剪枝是決策樹學習算法對付"過擬合"的主要手段。
過擬合原因:
1)??噪聲導致的過擬合:擬合了被誤標記的樣例,導致誤分類。
2)缺乏代表性樣本導致的過擬合:缺乏代表性樣本的少量訓練集作出的決策會出現過擬合。
3)多重比較造成的過擬合:復雜模型。
基本策略有"預剪枝"?和"后剪枝";
預剪枝是指在決策樹生成過程中,對每個結點在劃分前先進行估計,若當前結點的劃分不能帶來決策樹泛化性能提升,則停止劃分并將當前結點標記為葉結點;
后剪枝則是先從訓練集生成一棵完整的決策樹,然后自底向上地對非葉結點進行考察,若將該結點對應的子樹替換為葉結點能帶來決策樹泛化性能提升,則將該子樹替換為葉結點。
判斷決策樹泛化性能是否提升:留出法,即預留一部分數據用作"驗證集"以進行性能評估。
例如:在預剪枝中,對于每一個分裂節點,對比分裂前后決策樹在驗證集上的預測精度,從而決定是否分裂該節點。而在后剪枝中,考察非葉節點,對比剪枝前后決策樹在驗證集上的預測精度,從而決定是否對其剪枝。
兩種方法對比:
1)預剪枝使得決策樹的很多分支都沒有"展開”,不僅降低過擬合風險,而且顯著減少訓練/測試時間開銷;但有些分支的當前劃分雖不能提升泛化性能,但在其基礎上進行的后續劃分卻有可能導致性能顯著提高,即預剪枝基于"貪心"本質禁止這些分支展開,給預剪枝決策樹帶來了欠擬含的風險。
后剪枝決策樹通常比預剪枝決策樹保留了更多的分支。一般情形下,后剪枝決策樹的欠擬合風險很小,泛化性能往往優于預剪枝決策樹,但后剪枝過程是在生成完全決策樹之后進行的,并且要自底向上地對樹中的所有非葉結點進行逐一考察,因此其訓練時間開銷比未剪枝決策樹和預剪枝決策樹都要大得多。
?
特殊值處理:
1、連續值
以上都是基于離散屬性進行討論,而連續屬性的可取值數目不再有限,?因此,不能直接根據連續屬性的可取值來對結點進行劃分。此時需要進行連續屬性離散化,最簡單的策略是采用二分法對連續屬性進行處理(C4 . 5)。?
給定樣本集D和連續屬性a,假設a在D上出現了n個不同的取值,升序排列后記為:,基于劃分點t可將D分為D-(不大于t)和D+(大于t)兩個子集,而對于相鄰的屬性取值,t在之間取任何值對分類結果(D-和D+)都是一樣的,可直接取其中位點進行考慮。
故,對連續屬性a,可考察包含n-1個元素的候選劃分點t集合:
于是,我們就可像離散屬性值一樣來考察這些劃分點,選取最優的劃分點進行樣本集合的劃分,例如,使用信息增益:
即選擇使信息增益最大的劃分點進行劃分。
注:
1)可將劃分點設為該屬性在訓練集中出現的不大于中位點的最大值,從而使得最終決策樹使用的劃分點都在訓練集中出現過。
2)與離散屬性不同,若當前結點劃分屬性為連續屬性,該屬性還可作為其后代結點的劃分屬性。
2、缺失值
缺失問題:即樣本的某些屬性值缺失。
面臨問題:
1)如何在屬性值缺失的情況下進行劃分屬性選擇?
2)給定劃分屬性,若樣本在該屬性上的值缺失,如何對樣本進行劃分?
解決方法:(C4.5)
給定訓練集D和屬性a,僅對D中在屬性a上沒有缺失值的樣本子集來判斷屬性a的優劣。假定我們為每個樣本x賦予一個權重w(x)(初始化為1),定義:
由以上定義,將信息增益推廣為:
其中,
對于問題2),若樣本x在a上的取值缺失,則將x同時劃入所有子節點,且樣本權值對應于屬性值調整為,即讓同一個樣本以不同概率劃入不同的子節點中去。
以西瓜數據集為例:
以屬性“色澤”為例,根節點包含全部17個樣例,各樣本初始權重為1,該屬性上無缺失的樣例子集包含編號為{2?,3?,4,?6?,?7,?8,?9?,?10,?11?,?12?,?14,?15,?16,?17}的14個樣例,其信息熵為:
對應的屬性取值為“青綠”,“烏黑”,“淺白”的樣本子集的信息熵分別為:
因此,非缺失樣本子集的信息增益為:
從而,計算得所有樣本集的信息增益為:
類似地可計算出其他所有屬性在D上的信息增益:
選擇信息增益最大對應的屬性“紋理”進行劃分,劃分結果為:
“清晰”分支:編號為{1 ,2 ,3 ,4, 5 ,6 ,15}的樣本
“稍糊”分支:編號為{7 ,9, 13, 14, 17}的樣本
“模糊”分支:編號為{11 ,12, 16}的樣本
缺失樣本:{8},同時進入三個分支中,權重分別調整為7/15,5/15和3/15;編號{10}類似。
決策樹的優點:
決策樹的缺點:
ID3算法的核心是在決策樹各個節點上應用信息增益準則選擇特征遞歸地構建決策樹。
信息增益:
在信息論中,熵(entropy)是隨機變量不確定性的度量,也就是熵越大,則隨機變量的不確定性越大。設X是一個取有限個值得離散隨機變量,其概率分布為:
?
則隨機變量X的熵的定義為:
?
設有隨機變量(X, Y),其聯合概率分布為:
條件熵H(Y|X)表示在已知隨機變量X的條件下,隨機變量Y的不確定性。隨機變量X給定的條件下隨機變量Y的條件熵H(Y|X),定義為X給定條件下Y的條件概率分布的熵對X的數學期望:
當熵和條件熵中的概率由數據估計得到時(如極大似然估計),所對應的熵與條件熵分別稱為經驗熵和經驗條件熵。
定義:信息增益表示由于得知特征A的信息后,降低數據集D的分類不確定性減少的程度,定義為:
Gain(D,A) = H(D) – H(D|A)
即集合D的經驗熵H(D)與特征A給定條件下D的經驗條件熵H(H|A)之差。
理解:選擇劃分后信息增益大的作為劃分特征,說明使用該特征后劃分得到的子集純度越高,即不確定性越小。因此我們總是選擇當前使得信息增益最大的特征來劃分數據集。
缺點:信息增益偏向取值較多的特征(原因:當特征的取值較多時,根據此特征劃分更容易得到純度更高的子集,因此劃分后的熵更低,即不確定性更低,因此信息增益更大)
ID3算法流程:
輸入:訓練數據集D,特征集A,閾值ε;
輸出:決策樹T.
Step1:若D中所有實例屬于同一類,則T為單結點樹,并將類作為該節點的類標記,返回T;
Step2:若A=?,則T為單結點樹,并將D中實例數最大的類作為該節點的類標記,返回T;
Step3:否則,2.1.1(3)計算A中個特征對D的信息增益,選擇信息增益最大的特征;
Step4:如果的信息增益小于閾值ε,則T為單節點樹,并將D中實例數最大的類作為該節點的類標記,返回T
Step5:否則,對的每一種可能值,依將D分割為若干非空子集,將中實例數最大的類作為標記,構建子結點,由結點及其子樹構成樹T,返回T;
Step6:對第i個子節點,以為訓練集,以為特征集合,遞歸調用Step1~step5,得到子樹,返回;
?
C4.5算法與ID3算法很相似,C4.5算法是對ID3算法做了改進,在生成決策樹過程中采用信息增益比來選擇特征。
信息增益比:
我們知道信息增益會偏向取值較多的特征,使用信息增益比可以對這一問題進行校正。
定義:特征A對訓練數據集D的信息增益比GainRatio(D,A)定義為其信息增益Gain(D,A)與訓練數據集D的經驗熵H(D)之比:
C4.5算法過程跟ID3算法一樣,只是選擇特征的方法由信息增益改成信息增益比。
Gini指數
分類問題中,假設有K個類,樣本點屬于第k類的概率為,則概率分布的基尼指數定義為:
備注:表示選中的樣本屬于k類別的概率,則這個樣本被分錯的概率為。
對于給定的樣本集合D,其基尼指數為:
備注:這里是D中屬于第k類的樣本個數,K是類的個數。
如果樣本集合D根據特征A是否取某一可能值a被分割成D1和D2兩部分,即:
則在特征A的條件下,集合D的基尼指數定義為:
基尼指數Gini(D)表示集合D的不確定性,基尼指數Gini(D,A)表示經A=a分割后集合D的不確定性。基尼指數值越大,樣本集合的不確定性也就越大,這一點跟熵相似。
?
下面舉一個例子來說明上面的公式:
如下,是一個包含30個學生的樣本,其包含三種特征,分別是:性別(男/女)、班級(IX/X)和高度(5到6ft)。其中30個學生里面有15個學生喜歡在閑暇時間玩板球。那么要如何選擇第一個要劃分的特征呢,我們通過上面的公式來進行計算。
如下,可以Gini(D,Gender)最小,所以選擇性別作為最優特征。
CART算法流程:
輸入:訓練數據集D,停止計算的條件
輸出:CART決策樹.
根據訓練數據集,從根結點開始,遞歸地對每個結點進行以下操作,構建二叉樹:
Step1:設結點的訓練數據集為D,計算現有特征對該數據集的基尼指數。此時,對每一個特征A,對其可能取的每個值a,根據樣本點A=a的測試為“是”或“否”將D分割為D1和D2兩部分,利用上式Gini(D,A)來計算A=a時的基尼指數。
Step2:在所有可能的特征A以及他們所有可能的切分點a中,選擇基尼指數最小的特征及其對應可能的切分點作為最優特征與最優切分點。依最優特征與最優切分點,從現結點生成兩個子節點,將訓練數據集依特征分配到兩個子節點中去。
Step3:對兩個子結點遞歸地調用Step1、Step2,直至滿足條件。
Step4:生成CART決策樹。
算法停止計算的條件是節點中的樣本個數小于預定閾值,或樣本集的基尼指數小于預定閾值,或者沒有更多特征。
總結
以上是生活随笔為你收集整理的语音识别学习日志 2019-7-16 语音识别基础知识准备5 {决策树算法(ID3、 C4.5、 CART)}的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++中字符串与数字相互转换
- 下一篇: java中枚举类型详解