數據挖掘十大算法之—C4.5

學號:17101223364

姓名:張海潮

轉載自:https://m.baidu.com/from=1013966v/bd_page_type=1/ssid=0/uid=0/pu=usm%402%2Csz%40320_1001%2Cta%40iphone_2_6.0_19_5.2/baiduid=AA1EA5EC1B8323634E64640561F1A868/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=9334704617209648540&order=6&fm=alop&tj=www_normal_6_0_10_title&vit=osres&m=8&srd=1&cltj=cloud_title&asres=1&nt=wnor&title=%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E5%8D%81%E5%A4%A7%E7%AE%97%E6%B3%95%E4%B9%8BC4.5-CoreHua-%E5%8D%9A%E5%AE%A2%E5%9B%AD&dict=30&w_qd=IlPT2AEptyoA_yi7SI8sn3r4OVYi&sec=25189&di=9469560b534a5e37&bdenc=1&tch=124.399.320.1695.1.378&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRAUSLfNWmOFkTywSPQps-DcyzyKTEz7qR2rKtmxmdN78bwdcbqhgCAKxYLfwppOQKAUDYpzK&eqid=818b886457fad8001000000159fdbe4f&wd=&clk_info=%7B%22srcid%22%3A1599%2C%22tplname%22%3A%22www_normal%22%2C%22t%22%3A1509801587723%2C%22xpath%22%3A%22div-div-div2-a-p%22%7D&sfOpen=1,有刪節

【嵌牛導讀】:

C4.5是一系列用在機器學習和數據挖掘的分類問題中的算法。它的目標是監督學習:給定一個數據集,其中的每一個元組都能用一組屬性值來描述,每一個元組屬于一個互斥的類別中的某一類。C4.5的目標是通過學習,找到一個從屬性值到類別的映射關系,并且這個映射能用于對新的類別未知的實體進行分類。

【嵌牛鼻子】:數據挖掘 算法 C4.5

【嵌牛提問】:如何理解C4.5算法?

【嵌牛正文】:

C4.5由J.Ross Quinlan在ID3的基礎上提出的。ID3算法用來構造決策樹。決策樹是一種類似流程圖的樹結構,其中每個內部節點(非樹葉節點)表示在一個屬性上的測試,每個分枝代表一個測試輸出,而每個樹葉節點存放一個類標號。一旦建立好了決策樹,對于一個未給定類標號的元組,跟蹤一條有根節點到葉節點的路徑,該葉節點就存放著該元組的預測。決策樹的優勢在于不需要任何領域知識或參數設置,適合于探測性的知識發現。

? ? 從ID3算法中衍生出了C4.5和CART兩種算法,這兩種算法在數據挖掘中都非常重要。下圖就是一棵典型的C4.5算法對數據集產生的決策樹。

數據集如圖1所示,它表示的是天氣情況與去不去打高爾夫球之間的關系。

圖1? 數據集

?

圖2? 在數據集上通過C4.5生成的決策樹 算法描述

C4.5并不一個算法,而是一組算法—C4.5,非剪枝C4.5和C4.5規則。下圖中的算法將給出C4.5的基本工作流程:

圖3? C4.5算法流程

我們可能有疑問,一個元組本身有很多屬性,我們怎么知道首先要對哪個屬性進行判斷,接下來要對哪個屬性進行判斷?換句話說,在圖2中,我們怎么知道第一個要測試的屬性是Outlook,而不是Windy?其實,能回答這些問題的一個概念就是屬性選擇度量。

屬性選擇度量

? ? 屬性選擇度量又稱分裂規則,因為它們決定給定節點上的元組如何分裂。屬性選擇度量提供了每個屬性描述給定訓練元組的秩評定,具有最好度量得分的屬性被選作給定元組的分裂屬性。目前比較流行的屬性選擇度量有--信息增益、增益率和Gini指標。

? ? 先做一些假設,設D是類標記元組訓練集,類標號屬性具有m個不同值,m個不同類Ci(i=1,2,…,m),CiD是D中Ci類的元組的集合,|D|和|CiD|分別是D和CiD中的元組個數。

? ? (1)信息增益

? ? 信息增益實際上是ID3算法中用來進行屬性選擇度量的。它選擇具有最高信息增益的屬性來作為節點N的分裂屬性。該屬性使結果劃分中的元組分類所需信息量最小。對D中的元組分類所需的期望信息為下式:

(1)

Info(D)又稱為熵。

? ? 現在假定按照屬性A劃分D中的元組,且屬性A將D劃分成v個不同的類。在該劃分之后,為了得到準確的分類還需要的信息由下面的式子度量:

(2)

信息增益定義為原來的信息需求(即僅基于類比例)與新需求(即對A劃分之后得到的)之間的差,即

(3)

一般說來,對于一個具有多個屬性的元組,用一個屬性就將它們完全分開幾乎不可能,否則的話,決策樹的深度就只能是2了。從這里可以看出,一旦我們選擇一個屬性A,假設將元組分成了兩個部分A1和A2,由于A1和A2還可以用其它屬性接著再分,所以又引出一個新的問題:接下來我們要選擇哪個屬性來分類?對D中元組分類所需的期望信息是Info(D) ,那么同理,當我們通過A將D劃分成v個子集Dj(j=1,2,…,v)之后,我們要對Dj的元組進行分類,需要的期望信息就是Info(Dj),而一共有v個類,所以對v個集合再分類,需要的信息就是公式(2)了。由此可知,如果公式(2)越小,是不是意味著我們接下來對A分出來的幾個集合再進行分類所需要的信息就越小?而對于給定的訓練集,實際上Info(D)已經固定了,所以選擇信息增益最大的屬性作為分裂點。

? ? 但是,使用信息增益的話其實是有一個缺點,那就是它偏向于具有大量值的屬性。什么意思呢?就是說在訓練集中,某個屬性所取的不同值的個數越多,那么越有可能拿它來作為分裂屬性。例如一個訓練集中有10個元組,對于某一個屬相A,它分別取1-10這十個數,如果對A進行分裂將會分成10個類,那么對于每一個類Info(Dj)=0,從而式(2)為0,該屬性劃分所得到的信息增益(3)最大,但是很顯然,這種劃分沒有意義。

? (2)信息增益率

? 正是基于此,ID3后面的C4.5采

用了信息增益率這樣一個概念。信息增益率使用“分裂信息”值將信息增益規范化。分類信息類似于Info(D),定義如下:

(4)

這個值表示通過將訓練數據集D劃分成對應于屬性A測試的v個輸出的v個劃分產生的信息。信息增益率定義:

(5)

選擇具有最大增益率的屬性作為分裂屬性。

? ? (3)Gini指標

? ? Gini指標在CART中使用。Gini指標度量數據劃分或訓練元組集D的不純度,定義為:

(6)

其它特征

? ? 樹剪枝

? ? 在決策樹的創建時,由于數據中的噪聲和離群點,許多分枝反映的是訓練數據中的異常。剪枝方法是用來處理這種過分擬合數據的問題。通常剪枝方法都是使用統計度量,剪去最不可靠的分枝。

? ? 剪枝一般分兩種方法:先剪枝和后剪枝。

? ? 先剪枝方法中通過提前停止樹的構造(比如決定在某個節點不再分裂或劃分訓練元組的子集)而對樹剪枝。一旦停止,這個節點就變成樹葉,該樹葉可能取它持有的子集最頻繁的類作為自己的類。先剪枝有很多方法,比如(1)當決策樹達到一定的高度就停止決策樹的生長;(2)到達此節點的實例具有相同的特征向量,而不必一定屬于同一類,也可以停止生長(3)到達此節點的實例個數小于某個閾值的時候也可以停止樹的生長,不足之處是不能處理那些數據量比較小的特殊情況(4)計算每次擴展對系統性能的增益,如果小于某個閾值就可以讓它停止生長。先剪枝有個缺點就是視野效果問題,也就是說在相同的標準下,也許當前擴展不能滿足要求,但更進一步擴展又能滿足要求。這樣會過早停止決策樹的生長。

? ? 另一種更常用的方法是后剪枝,它由完全成長的樹剪去子樹而形成。通過刪除節點的分枝并用樹葉來替換它。樹葉一般用子樹中最頻繁的類別來標記。

? ? C4.5采用悲觀剪枝法,它使用訓練集生成決策樹又用它來進行剪枝,不需要獨立的剪枝集。

? ? 悲觀剪枝法的基本思路是:設訓練集生成的決策樹是T,用T來分類訓練集中的N的元組,設K為到達某個葉子節點的元組個數,其中分類錯誤地個數為J。由于樹T是由訓練集生成的,是適合訓練集的,因此J/K不能可信地估計錯誤率。所以用(J+0.5)/K來表示。設S為T的子樹,其葉節點個數為L(s),K的累加和為到達此子樹的葉節點的元組個數總和,J的累加和為此子樹中被錯誤分類的元組個數之和。在分類新的元組時,則其錯誤分類個數為

(7)
其標準錯誤表示為:
(8)

當用此樹分類訓練集時,設E為分類錯誤個數,當下面的式子成立時,則刪掉子樹S,用葉節點代替,且S的子樹不必再計算。

(9)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容

  • 決策樹理論在決策樹理論中,有這樣一句話,“用較少的東西,照樣可以做很好的事情。越是小的決策樹,越優于大的決策樹”。...
    制杖灶灶閱讀 5,899評論 0 25
  • 機器學習 經驗 數據 數據中產生模型model 的算法 學習算法 learning algorithm 數據集 d...
    時待吾閱讀 4,019評論 0 3
  • 3.1、摘要 在前面兩篇文章中,分別介紹和討論了樸素貝葉斯分類與貝葉斯網絡兩種分類算法。這兩種算法都以貝葉斯定理為...
    chaaffff閱讀 890評論 0 1
  • 一.樸素貝葉斯 1.分類理論 樸素貝葉斯是一種基于貝葉斯定理和特征條件獨立性假設的多分類的機器學習方法,所...
    wlj1107閱讀 3,125評論 0 5
  • 這一篇文章中,討論一種被廣泛使用的分類算法——決策樹(decision tree)。決策樹的優勢在于構造過程不需要...
    H2016閱讀 501評論 0 0