畫一棵樹,用來決策

#決策樹簡介#
決策樹(Decision Tree)是一種簡單但是廣泛使用的分類器碉输。通過訓(xùn)練數(shù)據(jù)構(gòu)建決策樹籽前,可以高效的對未知的數(shù)據(jù)進(jìn)行分類。
決策數(shù)有兩大優(yōu)點(diǎn):1)決策樹模型可以讀性好敷钾,具有描述性枝哄,有助于人工分析;2)效率高阻荒,決策樹只需要一次構(gòu)建挠锥,反復(fù)使用,每一次預(yù)測的最大計算次數(shù)不超過決策樹的深度侨赡。
決策樹的主要算法有ID3蓖租,C4.5,CART羊壹。其中C4.5是對于ID3的優(yōu)化蓖宦。本周主要就是學(xué)習(xí)了ID3算法的過程,基于我自己編的一組數(shù)據(jù):

#基礎(chǔ)概念-信息熵#
信息是個很抽象的概念油猫。人們常常說信息很多稠茂,或者信息較少,但卻很難說清楚信息到底有多少情妖。比如一本五十萬字的中文書到底有多少信息量睬关。
直到1948年,香農(nóng)提出了“信息熵”的概念毡证,才解決了對信息的量化度量問題电爹。香農(nóng)從熱力學(xué)中借用過來的。熱力學(xué)中的熱熵是表示分子狀態(tài)混亂程度的物理量料睛。香農(nóng)用信息熵的概念來描述信源的不確定度丐箩。
假如事件A的全概率劃分是(A1,A2,...,An),每部分發(fā)生的概率是(p1,p2,...,pn)秦效,那信息熵定義為:


log通常以2為底數(shù)雏蛮,所以信息熵的單位是bit涎嚼。

#構(gòu)造決策樹-樹根#
構(gòu)造樹的基本想法是隨著樹深度的增加阱州,節(jié)點(diǎn)的熵迅速地降低。熵降低的速度越快越好法梯,因?yàn)檫@樣得到的樹的高度最矮苔货。讓熵減小犀概,就是說讓確定性增加,也就是越來越能夠做出判斷夜惭。
我們的例子中姻灶,最開始如果病人的任何特征都不看,根據(jù)歷史的數(shù)據(jù)诈茧,知道病人感冒的概率是1/2产喉,過敏的概率1/6,腦震蕩概率1/3敢会。此時的熵為:
E = -(1/2)×log(1/2)-(1/6)×log(1/6)-(1/3)×log(1/3)= 1.459
然后看特征曾沈,病人的特征有三個,癥狀鸥昏、職業(yè)塞俱、性別,我們要選擇一個作為樹根吏垮,先把原始6個病人情況做成一張表:


先看癥狀這個特征:
癥狀為“打噴嚏”的有3人障涯,2個感冒,1個過敏膳汪,因此打噴嚏時唯蝶,2/3概率感冒,1/3概率過敏遗嗽,0概率腦震蕩生棍,此時熵為:
-(2/3)×log(2/3)-(1/3)×log(1/3)= 0.918
癥狀為“頭疼”的有3人,1個感冒媳谁,2個腦震蕩涂滴,因此頭疼時,1/3概率感冒晴音,2/3概率腦震蕩柔纵,0概率過敏,此時熵為:
-(1/3)×log(1/3)-(2/3)×log(2/3)= 0.918
從整體看锤躁,一共6個人搁料,3個打噴嚏,3個頭疼系羞,因此郭计,打噴嚏和頭疼的概率都是1/2
所以已知特征“癥狀”的情況,總系統(tǒng)的信息熵為0.918×1/2+0.918×1/2 = 0.918椒振,
信息增益Gain(癥狀)=1.459-0.918= 0.541

再看“職業(yè)”這個特征:
職業(yè)為“護(hù)士”的有1人昭伸,1個感冒。因此職業(yè)為護(hù)士澎迎,1概率感冒庐杨,0概率其他病选调,熵為0
職業(yè)為“農(nóng)民”的有1人,1個過敏灵份。因此職業(yè)為農(nóng)民仁堪,1概率過敏,0概率其他病填渠,熵為0
職業(yè)為“工人”的有2人弦聂,1個感冒,1個腦震蕩氛什。因此職業(yè)為工人横浑,1/2概率感冒,1/2概率腦震蕩屉更,0概率過敏徙融,熵:
-(1/2)×log(1/2)-(1/2)×log(1/2)= 1
職業(yè)為“教師”的有2人,1個感冒瑰谜,1個腦震蕩欺冀。因此職業(yè)為教師,1/2概率感冒萨脑,1/2概率腦震蕩隐轩,0概率過敏,熵:
-(1/2)×log(1/2)-(1/2)×log(1/2)= 1
從整體看渤早,一共6個人职车,1護(hù)士,1農(nóng)民鹊杖,2工人悴灵,2教師,因此護(hù)士和農(nóng)民的概率都是1/6骂蓖,工人和教師概率都是1/3积瞒,所以已知特征“職業(yè)”的情況,總系統(tǒng)的信息熵為:
1/6 ×0 +1/6×0 +1/3×1+1/3×1=0.667登下,
信息增益Gain(職業(yè))=1.459-0.667= 0.792

再看“性別”這個特征:
性別為“男”有2人茫孔,1過敏,1腦震蕩被芳,因此性別為男缰贝,1/2概率過敏,1/2概率腦震蕩畔濒,0概率感冒剩晴,熵為:
-(1/2)×log(1/2)-(1/2)×log(1/2)= 1
性別為“女”有4人,3個感冒篓冲,1個腦震蕩李破,因此性別為女,3/4概率感冒壹将,1/4概率腦震蕩嗤攻,熵為:
-(3/4)×log(3/4)-(1/4)×log(1/4)= 0.811
從整體看,一共6個人诽俯,2男4女妇菱,因此男概率1/3,女概率2/3暴区,已知性別的情況下闯团,總系統(tǒng)的信息熵為
1×1/3+0.811×2/3=0.874
信息增益Gain(性別)=1.459-0.874=0.585

可見“職業(yè)”讓總系統(tǒng)的信息熵下降的更快,決策樹的根就是職業(yè)仙粱,如下圖:

在護(hù)士和農(nóng)民分支房交,剛才已經(jīng)計算了熵為0,意味著已經(jīng)沒有任何不確定性了(給出的6個病人的數(shù)據(jù)也能看出來)伐割,可以直接判斷病情候味。

#構(gòu)造決策樹-其他枝葉#
構(gòu)造枝葉的方法和構(gòu)造樹根一樣,只是考慮的病人的范圍不同隔心。
接下來確定N1白群,方法類似,現(xiàn)在只需要考慮職業(yè)為“工人”的這個子系統(tǒng)硬霍,還是列一個表:


剛才已經(jīng)計算過帜慢,職業(yè)為工人的系統(tǒng)信息熵為1

先看癥狀這個特征:
癥狀為打噴嚏的沒有,熵為0
癥狀為頭疼的有2人唯卖,1人感冒粱玲,1人腦震蕩,因此“頭疼工人”里拜轨,1/2概率感冒密幔,1/2概率腦震蕩,熵為:
-(1/2)×log(1/2)-(1/2)×log(1/2)= 1
總的系統(tǒng)信息熵為1撩轰,沒有任何變化

再看性別這個特征
性別為男1人胯甩,是腦震蕩,因此“男工人”里堪嫂,腦震蕩概率1偎箫,其他概率0,熵為0
性別為女1人皆串,是感冒淹办,因此“女工人”里,感冒概率1恶复,其他概率0怜森,熵為0
總的系統(tǒng)熵為0速挑,把總系統(tǒng)熵一下降低為0

因此,N1就應(yīng)該選擇性別作為分支副硅,然后分支的熵都為0了姥宝,也就都能確定病情了。

接下來確定N2恐疲,方法類似腊满,現(xiàn)在只需要考慮職業(yè)為“教師”的這個子系統(tǒng),還是列一個表:

這個表和計算N1的表數(shù)值上完全類似培己,計算過程不再贅述碳蛋,最終N2選擇癥狀,同時系統(tǒng)的熵降為0
每個分支的熵都為0省咨,總系統(tǒng)的熵也就為0肃弟,決策樹構(gòu)造完畢,最終如圖:

#判定規(guī)則#
決策樹比較直觀零蓉,好理解愕乎,關(guān)鍵就在于構(gòu)造完成之后可以演變成一條一條的判定規(guī)則。本例中:
IF 職業(yè)為護(hù)士 THEN 感冒
IF 職業(yè)為農(nóng)民 THEN 過敏
IF 職業(yè)為工人壁公,性別為男 THEN 腦震蕩
……

#其他#
構(gòu)造過程中感论,可能發(fā)生屬性用完還是沒有最終判定的情況(也就是葉子節(jié)點(diǎn)還是有很多可能性),那么就選擇最大可能性的判定作為判定(選判定結(jié)果最多的)

連續(xù)型數(shù)據(jù)的屬性紊册,ID3沒法處理(個人理解也可以預(yù)先進(jìn)行離散化操作比肄,例如分段處理,然后在構(gòu)造決策樹)

決策樹還有一個非常重要的問題是過度擬合囊陡,因?yàn)槭?00%按照給定的訓(xùn)練數(shù)據(jù)構(gòu)造的樹芳绩,訓(xùn)練數(shù)據(jù)中的噪音數(shù)據(jù)等都生成了特定的分支,應(yīng)用的時候就會發(fā)生錯誤率很高的問題撞反。對于決策樹妥色,必須要進(jìn)行剪枝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遏片,一起剝皮案震驚了整個濱河市嘹害,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吮便,老刑警劉巖笔呀,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異髓需,居然都是意外死亡许师,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來微渠,“玉大人搭幻,你說我怎么就攤上這事〕雅瑁” “怎么了檀蹋?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纳击。 經(jīng)常有香客問我续扔,道長攻臀,這世上最難降的妖魔是什么焕数? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮刨啸,結(jié)果婚禮上堡赔,老公的妹妹穿的比我還像新娘。我一直安慰自己设联,他們只是感情好善已,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著离例,像睡著了一般换团。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宫蛆,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天艘包,我揣著相機(jī)與錄音,去河邊找鬼耀盗。 笑死想虎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叛拷。 我是一名探鬼主播舌厨,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忿薇!你這毒婦竟也來了裙椭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤署浩,失蹤者是張志新(化名)和其女友劉穎骇陈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瑰抵,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡你雌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婿崭。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡拨拓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出氓栈,到底是詐尸還是另有隱情渣磷,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布授瘦,位于F島的核電站醋界,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏提完。R本人自食惡果不足惜形纺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望徒欣。 院中可真熱鬧逐样,春花似錦、人聲如沸打肝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粗梭。三九已至争便,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間断医,已是汗流浹背滞乙。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留孩锡,地道東北人酷宵。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像躬窜,于是被迫代替她去往敵國和親浇垦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容