日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据挖掘算法之决策树算法总结

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据挖掘算法之决策树算法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習中,決策樹是一個預測模型;它代表的是對象屬性值與對象值之間的一種映射關系。樹中每個節點表示某個對象,每個分叉路徑則代表的某個可能的屬性值,而每個葉結點則對應具有上述屬性值的子對象。決策樹僅有單一輸出;若需要多個輸出,可以建立獨立的決策樹以處理不同輸出。

每個決策樹都表述了一種樹型結構,它由它的分支來對該類型的對象依靠屬性進行分類。每個決策樹可以依靠對源數據庫的分割進行數據測試。這個過程可以遞歸式的對樹進行修剪。當不能再進行分割或一個單獨的類可以被應用于某一分支時,遞歸過程就完成了。另外,隨機森林分類器將許多決策樹結合起來以提升分類的正確率。

決策樹同時也可以依靠計算條件概率來構造。決策樹如果依靠數學的計算方法可以取得更加理想的效果。1986Quinlan提出了著名的ID3算法。在ID3算法的基礎上,1993Quinlan又提出了C4.5算法。為了適應處理大規模數據集的需要,后來又提出了若干改進的算法,其中SLIQ (super-vised learning in quest)SPRINT (scalable parallelizableinduction of decision trees)是比較有代表性的兩個算法。

決策樹的工作原理

決策樹一般都是自上而下的來生成的。?選擇分割的方法有多種,但是目的都是一致的,即對目標類嘗試進行最佳的分割。

從根節點到葉子節點都有一條路徑,這條路徑就是一條“規則”。決策樹可以是二叉的,也可以是多叉的。對每個節點的衡量:

  • 通過該節點的記錄數;
  • 如果是葉子節點的話,分類的路徑;
  • 對葉子節點正確分類的比例。
  • ?(1) ID3算法

    ID3算法的核心是:在決策樹各級結點上選擇屬性時,用信息增益(information gain)作為屬性的選擇標準,以使得在每一個非葉結點進行測試時,能獲得關于被測試記錄最大的類別信息。其具體方法是:檢測所有的屬性,選擇信息增益最大的屬性產生決策樹結點,由該屬性的不同取值建立分支,再對各分支的子集遞歸調用該方法建立決策樹結點的分支,直到所有子集僅包含同一類別的數據為止。最后得到一棵決策樹,它可以用來對新的樣本進行分類。

    ID3算法的優點是:算法的理論清晰,方法簡單,學習能力較強。其缺點是:只對比較小的數據集有效,且對噪聲比較敏感,當訓練數據集加大時,決策樹可能會隨之改變。

    (2) C4.5算法

    C4.5算法繼承了ID3算法的優點,并在以下幾方面對ID3算法進行了改進:

  • 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;
  • 在樹構造過程中進行剪枝;
  • 能夠完成對連續屬性的離散化處理;
  • 能夠對不完整數據進行處理。
  • C4.5算法與其它分類算法如統計方法、神經網絡等比較起來有如下優點:產生的分類規則易于理解,準確率較高。其缺點是:在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效。此外,C4.5只適合于能夠駐留于內存的數據集,當訓練集大得無法在內存容納時程序無法運行。

    (3) SLIQ算法

    SLIQ算法對C4.5決策樹分類算法的實現方法進行了改進,在決策樹的構造過程中采用了“預排序”和“廣度優先策略”兩種技術。

  • 預排序。對于連續屬性在每個內部結點尋找其最優分裂標準時,都需要對訓練集按照該屬性的取值進行排序,而排序是很浪費時間的操作。為此,SLIQ算法采用了預排序技術。所謂預排序,就是針對每個屬性的取值,把所有的記錄按照從小到大的順序進行排序,以消除在決策樹的每個結點對數據集進行的排序。具體實現時,需要為訓練數據集的每個屬性創建一個屬性列表,為類別屬性創建一個類別列表。
  • 廣度優先策略。在C4.5算法中,樹的構造是按照深度優先策略完成的,需要對每個屬性列表在每個結點處都進行一遍掃描,費時很多,為此,SLIQ采用廣度優先策略構造決策樹,即在決策樹的每一層只需對每個屬性列表掃描一次,就可以為當前決策樹中每個葉子結點找到最優分裂標準。
  • SLIQ算法由于采用了上述兩種技術,使得該算法能夠處理比C4.5大得多的訓練集,在一定范圍內具有良好的隨記錄個數和屬性個數增長的可伸縮性。然而它仍然存在如下缺點:

  • 由于需要將類別列表存放于內存,而類別列表的元組數與訓練集的元組數是相同的,這就一定程度上限制了可以處理的數據集的大小。
  • 由于采用了預排序技術,而排序算法的復雜度本身并不是與記錄個數成線性關系,因此,使得SLIQ算法不可能達到隨記錄數目增長的線性可伸縮性。
  • (4) SPRINT算法

    為了減少駐留于內存的數據量,SPRINT算法進一步改進了決策樹算法的數據結構,去掉了在SLIQ中需要駐留于內存的類別列表,將它的類別列合并到每個屬性列表中。這樣,在遍歷每個屬性列表尋找當前結點的最優分裂標準時,不必參照其他信息,將對結點的分裂表現在對屬性列表的分裂,即將每個屬性列表分成兩個,分別存放屬于各個結點的記錄。

    SPRINT算法的優點是在尋找每個結點的最優分裂標準時變得更簡單。其缺點是對非分裂屬性的屬性列表進行分裂變得很困難。解決的辦法是對分裂屬性進行分裂時用哈希表記錄下每個記錄屬于哪個孩子結點,若內存能夠容納下整個哈希表,其他屬性列表的分裂只需參照該哈希表即可。由于哈希表的大小與訓練集的大小成正比,當訓練集很大時,哈希表可能無法在內存容納,此時分裂只能分批執行,這使得SPRINT算法的可伸縮性仍然不是很好。


    ?下面以ID3和C4.5為例說明:

    ID3算法

    ??????信息論知識中我們直到,期望信息越小,信息增益越大,從而純度越高。所以ID3算法的核心思想就是以信息增益度量屬性選擇,選擇分裂后信息增益最大的屬性進行分裂。下面先定義幾個要用到的概念。

    ??????D為用類別對訓練元組進行的劃分,則Dentropy)表示為:??????


    ??????其中pi表示第i個類別在整個訓練元組中出現的概率,可以用屬于此類別元素的數量除以訓練元組元素總數量作為估計。熵的實際意義表示是D中元組的類標號所需要的平均信息量。

    ??????現在我們假設將訓練元組D按屬性A進行劃分,則AD劃分的期望信息為:??????


    ??????而信息增益即為兩者的差值:??????

    ??????ID3算法就是在每次需要分裂時,計算每個屬性的增益率,然后選擇增益率最大的屬性進行分裂。下面我們繼續用SNS社區中不真實賬號檢測的例子說明如何使用I

    D3算法構造決策樹。為了簡單起見,我們假設訓練集合包含

    10個元素:

    ??????其中sml分別表示小、中和大。

    ??????LFHR表示日志密度、好友密度、是否使用真實頭像和賬號是否真實,下面計算各屬性的信息增益。??????

    ??????




    ?

    ??????因此日志密度的信息增益是0.276

    ??????用同樣方法得到HF的信息增益分別為0.0330.553

    ??????因為F具有最大的信息增益,所以第一次分裂選擇F為分裂屬性,分裂后的結果如下圖表示:

    ?

    ?

    ??????在上圖的基礎上,再遞歸使用這個方法計算子節點的分裂屬性,最終就可以得到整個決策樹。

    ??????上面為了簡便,將特征屬性離散化了,其實日志密度和好友密度都是連續的屬性。對于特征屬性為連續值,可以如此使用ID3算法:

    ??????先將D中元素按照特征屬性排序,則每兩個相鄰元素的中間點可以看做潛在分裂點,從第一個潛在分裂點開始,分裂D并計算兩個集合的期望信息,具有最小

    期望信息的點稱為這個屬性的最佳分裂點,其信息期望作為此屬性的信息期望。

    3.3.2、C4.5算法

    ??????ID3算法存在一個問題,就是偏向于多值屬性,例如,如果存在唯一標識屬性ID,則ID3會選擇它作為分裂屬性,這樣雖然使得劃分充分純凈,但這種劃分對分類幾乎毫無用處。ID3的后繼算法C4.5使用增益率gain ratio)的信息增益擴充,試圖克服這個偏倚。

    ??????C4.5算法首先定義了“分裂信息”,其定義可以表示成:??????

    ??????其中各符號意義與ID3算法相同,然后,增益率被定義為:

    ??????

    ?

    ??????C4.5選擇具有最大增益率的屬性作為分裂屬性,其具體應用與ID3類似,不再贅述。

    參考來源:

    ?

    http://www.cnblogs.com/kidoln/archive/2012/01/05/2312679.html

    ?

    http://www.cnblogs.com/leoo2sk/archive/2010/09/19/1831151.html

    ?

    總結

    以上是生活随笔為你收集整理的数据挖掘算法之决策树算法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。