不同於貝葉斯演算法,決策樹的構造過程不依賴領域知識,它使用屬性選擇度量來選擇將元組最好地劃分成不同的類的屬性。所謂決策樹的構造就是進行屬性選擇度量確定各個特徵屬性之間的拓撲結構。
構造決策樹的關鍵步驟是**屬性。所謂**屬性就是在某個節點處按照某一特徵屬性的不同劃分構造不同的分支,其目標是讓各個**子集盡可能地「純」。盡可能「純」就是盡量讓乙個**子集中待分類項屬於同一類別。**屬性分為三種不同的情況:
1、屬性是離散值且不要求生成二叉決策樹。此時用屬性的每乙個劃分作為乙個分支。
2、屬性是離散值且要求生成二叉決策樹。此時使用屬性劃分的乙個子集進行測試,按照「屬於此子集」和「不屬於此子集」分成兩個分支。
3、屬性是連續值。此時確定乙個值作為**點split_point,按照》split_point和<=split_point生成兩個分支。
構造決策樹的關鍵性內容是進行屬性選擇度量,屬性選擇度量是一種選擇**準則,是將給定的類標記的訓練集合的資料劃分d「最好」地分成個體類的啟發式方法,它決定了拓撲結構及**點split_point的選擇。
屬性選擇度量演算法有很多,一般使用自頂向下遞迴分治法,並採用不回溯的貪心策略。這裡介紹id3和c4.5兩種常用演算法。
從資訊理論知識中我們直到,期望資訊越小,資訊增益越大,從而純度越高。所以id3演算法的核心思想就是以資訊增益度量屬性選擇,選擇**後資訊增益最大的屬性進行**。下面先定義幾個要用到的概念。
設d為用類別對訓練元組進行的劃分,則d的熵(entropy)表示為:
其中pi表示第i個類別在整個訓練元組**現的概率,可以用屬於此類別元素的數量除以訓練元組元素總數量作為估計。熵的實際意義表示是d中元組的類標號所需要的平均資訊量。
現在我們假設將訓練元組d按屬性a進行劃分,則a對d劃分的期望資訊為:
而資訊增益即為兩者的差值:
id3演算法就是在每次需要**時,計算每個屬性的增益率,然後選擇增益率最大的屬性進行**。下面我們繼續用sns社群中不真實賬號檢測的例子說明如何使用id3演算法構造決策樹。為了簡單起見,我們假設訓練集合包含10個元素:
其中s、m和l分別表示小、中和大。
設l、f、h和r表示日誌密度、好友密度、是否使用真實頭像和賬號是否真實,下面計算各屬性的資訊增益。理解計算過程:根節點以日誌密度為屬性(7yes-3no);劃分子節點三個s(1yes-2no),m(3yes-1no),l(3yes-0no)。
因此日誌密度的資訊增益是0.276。
用同樣方法得到h和f的資訊增益分別為0.033和0.553。
因為f具有最大的資訊增益,所以第一次**選擇f為**屬性,**後的結果如下圖表示:
在上圖的基礎上,再遞迴使用這個方法計算子節點的**屬性,最終就可以得到整個決策樹。
上面為了簡便,將特徵屬性離散化了,其實日誌密度和好友密度都是連續的屬性。對於特徵屬性為連續值,可以如此使用id3演算法:
先將d中元素按照特徵屬性排序,則每兩個相鄰元素的中間點可以看做潛在**點,從第乙個潛在**點開始,**d並計算兩個集合的期望資訊,具有最小期望資訊的點稱為這個屬性的最佳**點,其資訊期望作為此屬性的資訊期望。
id3演算法存在乙個問題,就是偏向於多值屬性,例如,如果存在唯一標識屬性id,則id3會選擇它作為**屬性,這樣雖然使得劃分充分純淨,但這種劃分對分類幾乎毫無用處。id3的後繼演算法c4.5使用增益率(gain ratio)的資訊增益擴充,試圖克服這個偏倚。
c4.5演算法首先定義了「**資訊」,其定義可以表示成:
其中各符號意義與id3演算法相同,然後,增益率被定義為:
c4.5選擇具有最大增益率的屬性作為**屬性,其具體應用與id3類似,不再贅述。
在決策樹構造過程中可能會出現這種情況:所有屬性都作為**屬性用光了,但有的子集還不是純淨集,即集合內的元素不屬於同一類別。在這種情況下,由於沒有更多資訊可以使用了,一般對這些子集進行「多數表決」,即使用此子集**現次數最多的類別作為此節點類別,然後將此節點作為葉子節點。
在實際構造決策樹時,通常要進行剪枝,這時為了處理由於資料中的雜訊和離群點導致的過分擬合問題。剪枝有兩種:
先剪枝——在構造過程中,當某個節點滿足剪枝條件,則直接停止此分支的構造。
後剪枝——先構造完成完整的決策樹,再通過某些條件遍歷樹進行剪枝。
關於剪枝的具體演算法這裡不再詳述,有興趣的可以參考相關文獻。
決策樹分類
一 分類的概念 分類是一種重要的資料分析形式,分類方法用於 資料物件的離散類別,而 則用於 資料物件的連續取值 資料分類是兩個階段的過程,包括學習階段和分類階段 學習階段 訓練階段 就是建立描述預先定義的資料類或概念集的分類器 而訓練集是有資料庫元祖和與他們相互關聯的類標號組成 類標號屬性是離散值和...
分類決策樹
決策樹是基於特徵對例項進行分類的樹形結構。決策樹學習演算法包括 特徵選擇 樹的生成和樹的剪枝。2.1.id3 1 針對當前的集合,計算每個特徵的資訊增益 2 選擇資訊增益最大的特徵作為當前節點的決策決策特徵 3 根據特徵不同的類別劃分到不同的子節點 比如年齡特徵有青年,中年,老年,則劃分到3顆子樹 ...
分類決策樹
決策樹是乙個簡單易用的機器學習演算法,具有很好的實用性。在風險評估 資料分類 專家系統中都能見到決策樹的身影。決策樹其實是一系列的if then規則的集合,它有可讀性良好,分類速度快等優點。把決策樹看成是一些if then規則的集合,在每一層樹上根據屬性的值判斷走勢,至到遇到葉節點,葉節點對應的就是...