決策樹
1 概述
決策樹的學(xué)習(xí)目的是產(chǎn)生一棵泛化能力強(qiáng)的決策樹白筹,基本流程遵循“分而治之”的策略芒澜。
決策樹
- 最頂層是根節(jié)點(diǎn)随闺,包含所有樣本
- 每個(gè)葉節(jié)點(diǎn)代表類或類分布(幾類的概率分布)(預(yù)測(cè)時(shí)直接選概率最大的類)虾标,對(duì)應(yīng)決策結(jié)果
- 每個(gè)樣本均被劃分到一個(gè)葉節(jié)點(diǎn)
樹的生成
- 選擇特征
- 選擇閾值
2 四種建樹算法
基本算法框架:
有三種特殊情況導(dǎo)致遞歸返回:
- 當(dāng)前結(jié)點(diǎn)包含的所有樣本都是同一類別了
- 當(dāng)前屬性集為空现拒,或是所有樣本所有屬性都一樣
- 當(dāng)前結(jié)點(diǎn)不包含任何樣本
圖中最關(guān)鍵的是第8行辣垒,也就是如何選擇最佳屬性。在這個(gè)問題上印蔬,有四種衍生出的算法:
- CLS
- ID3
- C4.5
- CART
接下來一一介紹勋桶。
2.1 CLS
CLS是第一個(gè)決策樹算法。
CLS算法的基本思想是通過遞歸地將數(shù)據(jù)集分割成多個(gè)子集侥猬,直到滿足某個(gè)停止條件為止例驹。在每個(gè)節(jié)點(diǎn)上,CLS算法選擇最優(yōu)的特征進(jìn)行分割陵究,并根據(jù)特征的取值將數(shù)據(jù)集劃分成不同的子集眠饮。
一旦數(shù)據(jù)集被劃分成子集,CLS算法會(huì)遞歸地在每個(gè)子集上重復(fù)上述過程铜邮,直到滿足停止條件為止仪召。
采用不同的測(cè)試屬性及其先后順序會(huì)生成不同的決策樹。
不展開松蒜。
2.2 ID3
信息增益
先給出信息熵與條件熵的定義扔茅。
假設(shè)是取有限個(gè)值的離散隨機(jī)變量,每個(gè)的概率為
秸苗,則X的(信息)熵定義為
信息熵的值越小召娜,代表樣本集合純度越高。
條件熵指在已知隨機(jī)變量
的條件下隨機(jī)變量Y的不確定性惊楼,定義為
在給定條件下
的條件概率分布的熵對(duì)
的數(shù)學(xué)期望玖瘸。
信息增益表示得知特征的值而使得類的信息的不確定性減少的程度秸讹。
特征A對(duì)訓(xùn)練數(shù)據(jù)集D的信息增益,即
一般的雅倒,熵與條件熵之差被稱作互信息璃诀,決策樹學(xué)習(xí)中的信息增益等價(jià)于訓(xùn)練數(shù)據(jù)集中類與特征的互信息。
在決策樹學(xué)習(xí)中蔑匣,信息增益就表示由于特征A而使得對(duì)數(shù)據(jù)集D進(jìn)行分類的不確定性減少的程度劣欢。減少程度越大,意味著信息增益越大裁良。所以我們選擇信息增益最大的特征凿将。
ID3算法
設(shè)樣本集合為D,第k類樣本占比為价脾,則
特征a對(duì)D條件熵為
其中
是特征a的可能取值牧抵,
是這種取值對(duì)應(yīng)的樣本數(shù),
即a取這種值得概率彼棍。
那么灭忠,信息增益就是
過程:
輸入:數(shù)據(jù)集D,特征集A座硕,閾值
輸出:決策樹T
- 特殊情況:D中樣本同屬一個(gè)類弛作,T為葉子。A為空集华匾,T為葉子映琳,按少數(shù)服從多數(shù)原則確定類別。
- 計(jì)算A中各個(gè)特征對(duì)D的信息增益蜘拉,選擇信息增益最大的
作為測(cè)試屬性萨西。
- 如果
小于增益閾值
,則置T為單結(jié)點(diǎn)樹旭旭。選D中實(shí)例數(shù)最大的類作為標(biāo)記谎脯,返回T
- 否則,對(duì)
的每一個(gè)可能值持寄,按
劃分D為若干非空子集
源梭,將
中實(shí)例數(shù)最大的類作為標(biāo)記,構(gòu)建子節(jié)點(diǎn)稍味,由節(jié)點(diǎn)和子節(jié)點(diǎn)構(gòu)成樹T废麻,返回T
- 對(duì)結(jié)點(diǎn)i,以
為數(shù)據(jù)集模庐,
為特征集烛愧,遞歸計(jì)算。
數(shù)據(jù)清理:
要做數(shù)據(jù)的清理,轉(zhuǎn)換怜姿,相關(guān)性分析...
2.2 C4.5
ID3的缺陷:如果我們用一種特別特殊的特征慎冤,比如編號(hào),學(xué)號(hào)...每個(gè)特征里只對(duì)應(yīng)一個(gè)樣本沧卢,那這種情況下粪薛,肯定為0,信息增益只剩第一項(xiàng)
搏恤,肯定是所有特征里最大的。但是這樣生成的模型毫無泛化能力湃交,無法對(duì)新樣本進(jìn)行有效預(yù)測(cè)熟空。
信息增益比
用信息增益比來選擇特征
代指Gain_ratio
分母是懲罰。劃分類別越多搞莺,熵越大息罗,比值越小。其中
稱為屬性a的固有值才沧。
遞歸過程和ID3相同迈喉。
2.3 CART
CART(Classification and Regression Tree)分類回歸樹
- 分類樹:基尼指數(shù)Gini Index
- 回歸樹:平方誤差最小化
由兩部分組成
- 決策樹生成
- 決策樹剪枝
CART決策樹是二叉樹
基尼指數(shù)
CART決策樹采用基尼指數(shù)Gini Index來選擇屬性
基尼值:
直觀上,基尼值反映了從數(shù)據(jù)集中任選兩個(gè)樣本温圆,其類別不一致的概率挨摸。基尼值越小岁歉,純度越高得运。
基尼指數(shù)Gini Index:
對(duì)于屬性a,基尼系數(shù)
在通過a分成的每一塊中锅移,算Gini并乘上比例熔掺。
3 剪枝
剪枝可以減少?zèng)Q策樹的規(guī)模(復(fù)雜度),處理過擬合的問題非剃。
分為預(yù)剪枝和后剪枝
預(yù)剪枝
在生成時(shí)對(duì)每個(gè)結(jié)點(diǎn)進(jìn)行估計(jì)置逻,如果當(dāng)前結(jié)點(diǎn)的劃分不能提升泛化性能,就不劃分备绽∪耄可以使用性能評(píng)估的方法(如留出法等)來判斷。但是有欠擬合的風(fēng)險(xiǎn)疯坤。
后剪枝
在樹建成之后报慕,自底向上地進(jìn)行剪枝。
極小化Cost Complexity函數(shù):
第一項(xiàng)是樹T的錯(cuò)誤压怠,第二項(xiàng)是正則項(xiàng)眠冈,代表樹的復(fù)雜度,為正則化參數(shù)。
過程:
輸入:樹
輸出:修建后的樹
- 計(jì)算每個(gè)葉子節(jié)點(diǎn)的代價(jià)
- 計(jì)算如果這個(gè)節(jié)點(diǎn)回縮到父節(jié)點(diǎn)之后的代價(jià)布卡,如果回縮之后代價(jià)減少了,就剪枝
- 遞歸地向上回溯
根據(jù)驗(yàn)證集上的代價(jià)決定是否剪枝
CART決策樹的剪枝
詳情可見:https://www.cnblogs.com/yang-ding/archive/2022/10/19/16805491.html
Step2:利用獨(dú)立的驗(yàn)證集在子樹序列中選擇誤差最小的雇盖。
4 連續(xù)屬性與缺失屬性的處理
連續(xù)值處理
C4.5和CART都使用了連續(xù)屬性離散化忿等,最簡單的是二分法。
對(duì)數(shù)據(jù)集上此屬性的所有值進(jìn)行由小到大排序(假設(shè)共n個(gè))崔挖,取每兩個(gè)鄰接的值的中位數(shù)作為劃分點(diǎn)(共n-1個(gè))贸街。對(duì)每個(gè)點(diǎn)對(duì)應(yīng)的劃分方法,算信息增益狸相,或者增益比薛匪,基尼指數(shù)等來進(jìn)行選擇。
缺失值處理
訓(xùn)練集有缺失脓鹃,如何劃分
是數(shù)據(jù)完整的樣本所占(加權(quán))比例逸尖,
是數(shù)據(jù)完整的樣本集合。
同時(shí)劃入所有子節(jié)點(diǎn)瘸右,分別算劃分到各個(gè)子節(jié)點(diǎn)的概率娇跟,且樣本權(quán)值在與屬性值對(duì)應(yīng)的子結(jié)點(diǎn)中調(diào)整為原權(quán)值×這個(gè)屬性值的概率
預(yù)測(cè)時(shí)屬性值缺失
按概率決定類別
5 多變量決策樹
參考:
- 南瓜書https://www.bilibili.com/video/BV1Mh411e7VU/?p=1&vd_source=32ad22ca1aa5a882c8b7fe1b7878657f
- 《機(jī)器學(xué)習(xí)》周志華
- ...