?

數據挖掘中決策樹分類算法的研究

2010-09-08 10:49李如平
關鍵詞:結點剪枝決策樹

李如平

(安徽工商職業學院電子信息系,安徽合肥231100)

數據挖掘中決策樹分類算法的研究

李如平

(安徽工商職業學院電子信息系,安徽合肥231100)

決策樹方法是數據挖掘中一種重要的分類方法,決策樹是一個類似流程圖的樹型結構,其中樹的每個內部結點代表對一個屬性的測試,其分支代表測試的結果,而樹的每個葉結點代表一個類別。通過決策樹模型對一條記錄進行分類,就是通過按照模型中屬性測試結果從根到葉找到一條路徑,最后葉節點的屬性值就是該記錄的分類結果。

數據挖掘,分類,決策樹

近年來,隨著數據庫和數據倉庫技術的廣泛應用以及計算機技術的快速發展,人們利用信息技術搜集數據的能力大幅度提高,大量數據庫被用于商業管理、政府辦公、科學研究和工程開發等。面對海量的存儲數據,如何從中有效地發現有價值的信息或知識,是一項非常艱巨的任務。數據挖掘就是為了應對這種要求而產生并迅速發展起來的。數據挖掘就是從大型數據庫的數據中提取人們感興趣的知識,這些知識是隱含的、事先未知的潛在有用的信息,提取的知識表示為概念、規則、規律、模式等形式(姜靈敏等,2007)。

分類在數據挖掘中是一項非常重要的任務。分類的目的是學會一個分類函數或分類模型,把數據庫中的數據項映射到給定類別中的某個類別。分類可用于預測,預測的目的是從歷史數據記錄中自動推導出對給定數據的趨勢描述,從而能對未來數據進行預測(趙翔,2005)。分類算法最知名的是決策樹方法,決策樹是用于分類的一種樹結構。

1 決策樹介紹

決策樹(decision tree)技術是用于分類和預測的主要技術,決策樹學習是一種典型的以實例為基礎的歸納學習算法,它著眼于從一組無次序、無規則的事例中推理出決策樹表示形式的分類規則(趙翔,2005)。它采用自頂向下的遞歸方式,在決策樹的內部節點進行屬性的比較,并根據不同屬性判斷從該節點向下的分支,在決策樹的葉節點得到結論。所以從根到葉節點就對應著一條合取規則,整棵樹就對應著一組析取表達式規則(張桂杰,2005)。

把決策樹當成一個布爾函數。函數的輸入為物體或情況的一切屬性(property),輸出為”是”或“否”的決策值。在決策樹中,每個樹枝節點對應著一個有關某項屬性的測試,每個樹葉節點對應著一個布爾函數值,樹中的每個分支,代表測試屬性其中一個可能的值。

最為典型的決策樹學習系統是ID3,它起源于概念學習系統CLS,最后又演化為能處理連續屬性的C4.5(C5.0)等。它是一種指導的學習方法,該方法先根據訓練子集形成決策樹。如果該樹不能對所有給出的訓練子集正確分類,那么選擇一些其它的訓練子集加入到原來的子集中,重復該過程一直到時形成正確的決策集。當經過一批訓練實例集的訓練產生一棵決策樹,決策樹可以根據屬性的取值對一個未知實例集進行分類。使用決策樹對實例進行分類的時候,由樹根開始對該對象的屬性逐漸測試其值,并且順著分支向下走,直至到達某個葉結點,此葉結點代表的類即為該對象所處的類。

決策樹是應用非常廣泛的分類方法,目前有多種決策樹方法,如 ID3,C4.5,PUBLIC,CART,CN2,SLIQ,SPRINT等。大多數已開發的決策樹是一種核心算法的變體,下面先介紹一下決策樹分類的基本思想決策樹構造與剪枝,然后詳細介紹ID3和C4.5算法及決策樹算法的分析及改進等。

2 決策樹構造與剪枝

決策樹分類算法通常分為兩個步驟,決策樹生成和決策樹剪枝。

2.1 決策樹構造

決策樹構造算法的輸入是一組帶有類別標記的例子,構造的結果是一棵二叉樹或多叉樹。二叉樹的內部結點(非葉子結點)一般表示為一個邏輯判斷,如形式為(ai=vi)的邏輯判斷,其中ai是屬性,vi是該屬性的某個值。樹的邊是邏輯判斷的分支結果。多叉樹的內部結點是屬性,邊是該屬性的所有取值,有幾個屬性值,就有幾條邊。樹的葉子結點都是類別標記。

構造決策樹的方法是采用自上而下的遞歸構造(毛國君等,2007)。以多叉樹為例,它的構造思路是,以代表訓練樣本的單個結點開始建樹,如果樣本都在同一個類,則將其作為葉子結點,節點內容即是該類別標記。否則,根據某種策略選擇一個屬性,按照屬性和各個取值,把例子集合劃分為若干子集合,使得每個子集上的所有例子在該屬性上具有同樣的屬性值。然后再依次遞歸處理各個子集。這種思路實際上就是“分而治之”的道理。二叉樹同理,差別僅在于要如何選擇好的邏輯判斷。

構造好的決策樹的關鍵在于如何選擇好的邏輯判斷或屬性。對于同樣的一組例子,可以有很多決策樹符合這組例子(朱明,2008)。研究結果表明,一般情況下,樹越小則樹的預測能力越強。要構造盡可能小的決策樹,關鍵在于選擇合適的產生分支的屬性。屬性選擇依賴于對各種例子子集的不純度(Impurity)度量方法。不純度度量方法包括信息增益(Information Gain)、信息增益比(Gain Ratio)、Gini-index、距離度量、x2統計、證據權重、最小描述長度等。不同的度量由不同的效果,特別是對于多值屬性,選擇合適的度量方法對于結果的影響是很大的。ID3,C4.5,C5.0算法使用信息增益的概念來構造決策樹,而CART算法x則使用Gini-index,其中每個分類的決定都與前面所選擇的目標分類相關。

2.2 決策樹的剪枝

數據挖掘的對象是現實世界的數據,這些數據一般不可能是完美的,可能某些屬性字段上缺值;可能缺少必須的數據而造成數據不完整;可能數據不準確、含有噪聲甚至是錯誤的,所以要討論噪聲問題?;镜臎Q策樹構造算法沒有考慮噪聲,生成的決策樹完全與訓練例子擬合。有噪聲情況下,完全擬合將導致過分擬合,即對訓練數據的完全擬合反而不具有很好的預測性能。剪枝是一種克服噪聲的技術,同時它也能使樹得到簡化而變得更容易理解。

1)兩種基本的剪枝策略。

①前期剪枝(Forward-Pruning)是在樹的生長過程完成前就進行剪枝(馬麗等,2008)。在樹的生長過程中,決定是繼續對不純的訓練子集進行劃分還是停機。

例如某些有效統計量達到某個預先設定的閾值時,節點不再繼續分裂,內部節點成為一個葉子節點。葉子節點取子集中頻率最大的類作為自己的標識,或者可能僅僅存儲這些實例的概率分布函數。前期剪枝會引起樹在不完全成熟之前停止工作,即樹可能在不應停止的時候而停止擴展,或稱之為horizon效應,而且,選取一個適當的閾值是困難的。較高的閾值可能導致過分簡化的樹,而較低的閾值可能使樹簡化的太少。即使這樣,預先修剪對大規模的實際應用還是值得研究的,因為它相當高效。人們有望在未來的算法中解決horizon效應。

②)后期剪枝(Post-Pruning)是當決策樹的生長過程完成之后再進行剪枝(馬麗等,2008)。它是一種擬合-化簡(Fitting-and-simplifying)的兩階段方法(毛國君等,2007)。首先生成與訓練數據完全擬合的一棵決策樹,然后由下向上從樹的葉子開始剪枝,逐步向根的方向剪。剪枝時要用到一個測試數據集合,如果存在某個葉子剪去后測試集上的準確度或其它測度不降低(不變得更壞),則剪去該葉子,否則停機。

如果節點的子樹不應按某種規則被修剪,則由下向上的評價規則將使該節點避免被按同一規則修剪。與此相對的是自上向下的策略,即從根開始依次修剪節點,直到無法修剪為止。這樣作的風險在于,按某種規則剪掉了某個節點,但其子類是不應按這一規則被剪掉的。

2)對樹進行修剪優化時應遵循的原則。

①最小描述長度原則(MDL)(張桂杰,2005)。它的思想是最簡單的解釋是期望的,做法是對決策樹進行二進位編碼。編碼所需二進位最少的樹即為“最佳剪枝樹”。

②期望錯誤率最小原則(張桂杰,2005)。它的思想是選擇期望錯誤率最小的子樹剪枝,即對樹中的內部節點計算其剪枝/不剪枝可能出現的期望錯誤率,比較后加以取舍。

③奧卡姆剃刀原則。如無必要,勿增實體(朱明,2008)。即“在與觀察相容的理論中,應當選擇最簡單的一個”,決策樹越小就越容易被理解,其存儲與傳輸的代價也就越小。

3 ID3算法

ID3算法是1986年Quinlan提出的一個著名決策樹生成方法,是目前引用率很高的一種算法。ID3算法是運用信息熵理論,選擇當前樣本集中最大信息增益的屬性值作為測試屬性;樣本集的劃分則依據測試屬性值進行,測試屬性有多少不同取值就將樣本集劃分為多少子樣本集,同時,決策樹上相應于該樣本集的節點長出新的葉子節點。由于決策樹的結構越簡單越能從本質的層次上概括事物的規律,期望非葉節點到達后代節點的平均路徑總是最短,即生成的決策樹的平均深度最小,這就要求在每個節點選擇好的劃分。系統的不確定性越小,信息的傳遞就越充分。ID3算法根據信息理論,采用劃分后樣本集的不確定性作為衡量劃分好壞的標準,用信息增益值度量:信息增益值越大,不確定性越小。因此,算法在每個非葉節點選擇信息增益最大的屬性作為測試屬性。

ID3算法將對挖掘樣本集分為訓練樣本集和測試樣本集,決策樹的構建是在對訓練樣本集的學習上產生的,決策樹生成之后,再運用測試樣本集對樹進行后剪技,將分類預測準確率不符合條件的葉節點剪去。

1)信息理論(Informaiton theory)和熵(Entropy)。信息論是C.E Shannon為解決信息傳遞(通信)過程問題而建立的理論,一個傳遞信息的系統是由發送端和接收端以及連接兩者的通道三者組成。熵是對事件對應的屬性的不確定性的度量。一個屬性的熵值越小、子集劃分的純度越高,熵值熵越大,它蘊含的不確定信息越大,約有利于數據的分類(張桂杰,2005)。

2)信息增益(Informmation Gain)。信息增益基于信息論中熵(Entropy)的概念,是指期望信息或者信息熵的有效減少量(通常用“字節”衡量),根據它能夠確定在什么樣的層次上選擇什么樣的變量來分類(毛國君等,2007;朱明,2008)。ID3總是選擇具有最高信息增益(或最大熵)的屬性作為當前結點的測試屬性。該屬性使得對結果劃分中的樣本分類所需的信息量最小,并反映劃分的最小隨機性或“不純性”。信息增益計算如下:

設S是s個訓練樣本數據集,S中類標識屬性具有m個不同值,定義m個不同類Ci(i=1,2,3…,m)。設si是類Ci中的樣本數。對一個給定的樣本分類所需的期望信息由下式得出:

其中pi是任意樣本屬于Ci的概率,一般可用si/s來估計。

設屬性A具有n 個不同值{a1,a2,…,an},可以用屬性A將S劃分為n個子集{S1,S2,…,Sn},其中Sj包含S中這樣一些樣本,它們在A上具有值aj。如果A作為測試屬性,則這些子集對應于由包含集合S的結點生長出來的分支。

設sij是子集Sj中類Ci的樣本數。根據由A劃分成子集的熵由下式給出:

根據上面的期望信息計算公式,對于給定的子集Sj,其期望信息由下式計算:

對屬性A作為決策分類屬性的度量值即信息增益可以由下面的公式得到:

3)ID3算法的分析。ID3通過不斷的循環處理,逐步求精決策樹,直至找到一個完全正確的決策樹。ID3算法構造的決策樹是從頂向下歸納形成了一組類似If…Then的規則。其最原始的程序只是用來區分象棋中的走步,所以區分的類別只有兩種,即真或假,其屬性值也是一些離散有限的值,頁今ID3算法已發展到允許多于兩個類別,而其屬性值可以是整數或實數。其優缺點總結如下:

①優點。ID3在選擇重要特征時利用了信息增益的概念,算法的基礎理論清晰,使得算法較簡單,該算法的計算時間是例子個數、特征個數、結點個數之積的線性函數。而且搜索空間是完全假設空間,目標函數必在搜索空間中,不存在無解的危險。全盤使用訓練數據,而不像候選剪除算法一個一個地考慮訓練例。這樣做的優點是可以利用全部訓練例的統計性質進行決策,從而抵抗噪音。

②缺點。信息增益的計算依賴于特征值數目較多的特征,這樣不太合理,一個簡單的辦法對特征進行分解,可以把特征值統統化為二值特征。ID3對噪聲較為敏感。Quinlan定義訓練例子中的錯誤就是噪聲。它包括兩個方面,一是特征值取錯,二是類別給錯。當訓練集增加時,ID3的決策樹也會隨之變化。在建樹過程中各特征的信息增益隨例子的增加而變化,這對漸近學習不夠方便。

4 C4.5 算法

C4.5(Classsification 4.5)算法是 Quinlan 在1993年提出的,它既是ID3算法的后繼,也成為以后諸多算法的基礎。除了擁有ID3算法的功能外,C4.5算法引用了新的方法并增加了新的功能。在應用于單機的決策樹算法中,C4.5算法不僅分類準確率高而且速度快。

C4.5算法在ID3的基礎上增加了信息增益比例的概念和連續型屬性,屬性值空缺情況的處理,對樹剪枝也有了較成熟的方法,通過使用不同的修剪技術以避免樹的過度擬合,它克服了ID3在應用中的不足。首先用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向于選擇取值多的屬性的不足。其次,能夠完成對連續屬性的離散化處理,還能夠對不完整的數據進行處理。C4.5算法采用的知識表示形式為決策機構樹,并最終可以形成產生式規則。

1)信息增益比例的概念。信息增益比例是在信息增益概念基礎上發展起來的,一個屬性的信息增益比例用下面的公式給出:

這里設屬性A具有v個不同值{a1,a2,…,av}??梢杂脤傩訟將S劃分為v個子集{S1,S2,S3},其中Sj包含S中這樣一些樣本,它們在A上具有值aj。假如我們以屬性 A的值為基準對樣本進行分割,SplitI(A)就是前面熵的概念(毛國君等,2007;朱明,2008)。

2)合并具有連續值的屬性。ID3算法最初假定屬性離散值,但在實際應用中,很多屬性值是連續的。針對連續屬性值,C4.5首先根據屬性的值,對數據集排序,用不同的閾值將數據集動態地進行劃分,當輸入改變時,取兩個實際值中的中點作為一個閾值,取兩個劃分,所有樣本都在這兩個劃分中,得到所有可能的閾值、增益及增益比,在每一個屬性會變為倆個取值,即小于閾值或大于等于閾值。

針對屬性有連續數值的情況,比如說A有連續的屬性值,則在訓練集中可以按升序方式排列a1,a2,…,am。如果 A共有 n種取值,則對每個取值vj(j=1,2,…,n)將所有的記錄進行劃分。這些記錄被劃分成為兩個部分:一部分在vj的范圍內,而另一部分則大于vj。針對每個劃分分別計算增益比率,選擇增益最大的劃分來對相應的屬性進行離散化。

3)規則的產生。一旦樹被建立,就可把樹轉化成If-Then規則。規則存儲于一個二維數組中,每一行代表樹中的一個規則,即從根到葉之間的一個路徑,表中的每列存放著樹中的結點。

5 決策樹分類算法的分析

基于決策樹的分類算法自提出至今,種類不下幾十種。各種算法在執行速度、可擴展性、輸出結果的可理解性及分類預測的準確性等方面各有千秋。決策樹分類算法的發展可分為這樣幾個階段:首先,最早出現的ID3算法采用信息熵原理選擇測試屬性分割樣本集,只能處理具有離散型屬性和屬性值齊全的樣本,生成形如多叉樹的決策樹。后來出現的C4.5算法經過改進,能夠直接處理連續型屬性,能夠處理屬性值空缺的訓練樣本。ID3系列算法和C4.5系列算法在對訓練樣本集的學習中盡可能多地挖掘信息,但其生成決策樹分枝較多,規模較大。為了簡化決策樹算法,提高生成的決策樹的效率,又出現了一些其它決策樹算法。

決策樹分類算法的優點主要是能生成可以理解的規則,計算量相對來說不是很大,可以處理多種數據類型,決策樹可以清晰的顯示哪些屬性比較重要。與此同時它也存在一些缺點如對連續性的字段比較難預測,對有時間順序的數據,需要很多預處理的工作,當類別太多時,錯誤可能就會增加的比較快。

6 決策樹分類算法的改進

針對決策樹分類算法的缺點,下面將從屬性的選擇,如何對連續性屬性進行離散化等算法改進方面進行介紹。

1)屬性選擇。為了避免噪聲和干擾屬性對數據分類的影響,在建立決策樹之前先進行對屬性重要性排序,再用神經網絡技術對其中最重要的若干屬性進行訓練并檢驗其預測精度,然后屬性重要性次序向兩端分別加減一個鄰近的屬性再進行訓練及檢驗并和原檢驗結果比較,這樣反復多次直到找到分類效果最佳的n個屬性為止,這樣得到n個分類效果最好的屬性。

2)連續屬性離散化。離散化是分類過程中處理連續性的一種有效方法。離散化的效率和有效性直接影響到后續機器學習算法的效率和性能。很多分類規則只能處理離散屬性,如ID3算法,對連續屬性進行離散化是一個必要的步驟。C4.5雖能夠處理連續屬性,但離散化也是系統集成的一個重要步驟。離散化不僅可以縮短推導分類器的時間,而且有助于提高數據的可理解性,得到解精度更高的分類規則。

從優化的角度可以將離散化方法分為兩類:局部方法和全局方法。局部方法每次只對一個屬性進行離散,而全局方法同時對所有屬性進行離散。局部離散方法相對簡單,全局方法因為考慮了屬性間的相互作用往往可以得到比局部化方法更好的結果,但全局方法計算代價很高。

7 結束語

通過以上研究和分析,可以得出構造好的決策樹關鍵在于如何選擇好的邏輯判斷和屬性。隨著數據庫和數據倉庫技術的廣泛應用,數據的海量增加,決策樹技術的效率有待提高,針對實際問題時,需要對決策樹數據挖掘方法在適應性、容噪性等方面進行適當的改進。

但小容,陳軒恕,劉飛,柳德偉.2009.數據挖掘中決策樹分類算法的研究與改進[J].軟件導刊,8(2):41-43.

董賀,榮光怡.2008.數據挖掘中數據分類算法的比較分析[J].吉林師范大學學報(自然科學版),4:107-108.

姜靈敏,馬于濤.2007.信息資源聚合與數據挖掘[M].廣州:華南理工大學出版社,12-18.

馬麗,陳桂芬.2008.基于數據挖掘的決策樹算法應用研究[J].農業網絡信息,11:45-47.

毛國君,段立娟,王實,石云.2007.數據挖掘原理與算法(第二版)[M].北京:清華大學出版社,120-131.

張桂杰.2005.數據挖掘決策樹分類算法的研究與應用[D].長春:長春理工大學.

趙翔.2005.數據挖掘中決策樹分類算法的研究[D].鎮江:江蘇科技大學.

朱明.2008.數據挖掘(第2版)[M].合肥:中國科學技術大學出版社,63-102.

Research of Decision Tree Classification Algorithm in Data Mining

LI Ru-ping
(Anhui Business Vocational College,Department of Electronic and Information,Hefei,AH 231100,China)

Decision tree algorithm is one of the most important classification measures in data mining.Decision tree classifier as one type of classifier is a flow-chart like tree structure,where each intenal node denotes a test on an attribute,each branch represents an outcome of the test,and each leaf node represents a class.The method that a decision tree model is used to classify a record is to find a path that from root to leaf by measuring the attributes test,and the attribute on the leaf is classification result.

data mining;classification;decision tree

TP311.13

A

1674-3504(2010)02-192-05

10.3969/j.issn.1674-3504.2010.02.015

2010-02-28

李如平(1973—),男,安徽肥東人,講師,碩士,主要研究方向:計算機應用技術、信息管理。

猜你喜歡
結點剪枝決策樹
人到晚年宜“剪枝”
LEACH 算法應用于礦井無線通信的路由算法研究
利用KL散度度量通道冗余度的深度神經網絡剪枝方法
基于八數碼問題的搜索算法的研究
基于YOLOv4-Tiny模型剪枝算法
簡述一種基于C4.5的隨機決策樹集成分類算法設計
剪枝
決策樹學習的剪枝方法
決策樹在施工項目管理中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合