第二课 决策树与随机森林
本系列是七月算法機器學習課程筆記
文章目錄
- 1 從LR到決策樹
- 1.1 決策樹
- 1.2 決策樹的終止條件
- 1.3 決策樹劃分依據
- 1.3.1 信息熵
- 1.3.2 信息增益
- 1.3.3 ID3模型
- 1.3.4 信息增益率
- 1.3.5 基尼指數
- 1.3.6 信息熵與基尼指數
- 1.3.7 連續值屬性
- 2 回歸樹
- 2.1 回歸樹構建方法
- 3 從決策樹到隨機森林
- 3.1 bagging思想
- 3.2 隨機森林
1 從LR到決策樹
1.1 決策樹
決策樹出現是模仿了人類自己做判斷的一個過程。
例如一個相親案例。要考查的數據維度可能有:身高、財富積累、長相、是不是潛力股、品德如何。根據邏輯回歸的決策過程是下圖這樣。計算出的概率高,就去相親。
但是人做決策可能是下面這樣。例如年齡>30,不見。年齡<30,長得丑不見。
這樣的決策過程,簡單,邏輯清晰,可解釋性好。上面的圖就是一顆決策樹。
每個綠色的節點,稱為內部節點,對應于某一個屬性。年齡、長相、收入、是否公務員都是屬性。
每個分支對應于一種取值。
每個葉子節點對應一種結果。
學習過程:通過對訓練樣本的分析確定“劃分屬性”。例如女孩看韓劇,學習哪些屬性重要,以及怎么劃分。
預測過程:將測試樣本從根節點開始,沿著劃分屬性構成的“判斷測試序列”走到葉子節點。
1.2 決策樹的終止條件
決策樹構建過程中遇到以下三種情況就可以停止構建了。
第一種情況:當前節點包含的樣本屬于同一類別,無需劃分。例如當前節點下所有樣本的結果都是相親。那就無需劃分下去了。
第二種情況:當前屬性集為空,或者所有樣本在所有屬性上取值相同,無法劃分。例如集合中只有2個樣本。一個樣本身高=180,長相=帥,結果=相親;一個樣本身高=180,長相=帥,結果=不相親。所有條件都一樣(屬性值都相同),但結果不同。這個時候就不劃分了。
第三種情況:當前節點包含的樣本集合為空,不能劃分。
1.3 決策樹劃分依據
1.3.1 信息熵
信息熵是度量樣本集合信息“純度”的一個指標。例如一個樣本集合中全是黑球,一個人伸手拿出一個球是黑球的概率是100%。這就是純度很高的一種情況。如果樣本集合中有100個球,有100種顏色,那拿出一個球是黑球的概率就是1100\dfrac{1}{100}1001?。這就是非常混亂的一種情況。不利于人做出決策。
決策樹不斷遞進的過程是一個信息熵不斷較小的過程,因為我們是要做出決策的。
如果樣本集合集合中第k類樣本的所占比例為pkp_kpk?,那樣本信息熵的定義為Ent(D)=?∑k=1∣y∣pk?log2pkEnt(D)=-\sum_{k=1}^{|y|}p_k*log_2p_kEnt(D)=?∑k=1∣y∣?pk??log2?pk?, pk=0,則log2pk=0p_k=0,則log_2p_k=0pk?=0,則log2?pk?=0
Ent(D)越小,樣本集合純度越高。
1.3.2 信息增益
信息增益直接以信息熵計算為基礎,計算當前劃分對信息熵造成的變化。
離散屬性a的取值有a1,a2,a3...aV{a^1,a^2,a^3...a^V}a1,a2,a3...aV
信息增益是以屬性a對數據集D進行劃分所獲得的的信息增益為:Gain(D,a)=Ent(D)?∑v=1V∣Dv∣∣D∣Ent(Dv)Gain(D,a)= Ent(D) - \sum_{v=1}^{V}\dfrac{|D^v|}{|D|}Ent(D^v)Gain(D,a)=Ent(D)?∑v=1V?∣D∣∣Dv∣?Ent(Dv)
|D|表示數據集D的樣本數量
∣Dv∣|D^v|∣Dv∣表示數據集D中a=ava^vav的樣本數量
Ent(Dv)Ent(D^v)Ent(Dv)表示劃分后的信息熵
具體例子參考周老師的西瓜書。
1.3.3 ID3模型
根據信息增益選擇屬性,形成決策樹的模型稱為ID3。
在上面例子中可以用同樣的方法計算出其他屬性的信息增益。
發現按紋理的信息增益最大。那么就選擇紋理這個屬性做劃分。形成下面這棵樹。
接著以每一個節點為一個新的數據集計算其中每個屬性的信息增益。以紋理清晰這個節點為例。該結點包含的樣例集合 D1 中有編號為 {1,2, 3, 4, 5, 6, 8, 10, 15} 的 9 個樣例,可用屬性集合為{色澤,根蒂,敲聲,臍部7 觸感}.基于 D1 計算出各屬性的信息增益:
Gain(D1, 色澤) = 0.043; Gain(D1,根蒂) = 0.458; Gain(D1,敲聲) = 0.331; Gain(D1,臍部) = 0.458; Gain(D1,觸感) = 0.458.
“根蒂”、 “臍部”、 “觸感” 3 個屬性均取得了最大的信息增益,可任選其中之一作為劃分屬性。類似這樣的繼續劃分下去,直到遇到上面那三種情況,不再劃分。例子的具體信息可以查看西瓜書第四章。
1.3.4 信息增益率
根據信息增益增益率選擇屬性,形成決策樹的模型稱為C4.5。
例如在上面例子中,如果將編號作為一個屬性。那它可以將每個樣本分到不同的桶內,就不能再繼續劃分下去,但是這種劃分顯然沒有任何意義。怎么避免選擇這樣的屬性呢?使用信息增益率。
信息增益率:Grain_ratio(D,a)=Gain(D,a)IV(a)Grain\_ratio(D,a)=\dfrac{Gain(D,a)}{IV(a)}Grain_ratio(D,a)=IV(a)Gain(D,a)?
IV(a)=?∑v=1V∣Dv∣∣D∣log2∣Dv∣∣D∣IV(a)=-\sum_{v=1}^V\dfrac{|D^v|}{|D|}log_2\dfrac{|D^v|}{|D|}IV(a)=?∑v=1V?∣D∣∣Dv∣?log2?∣D∣∣Dv∣?
IV(a)其實是屬性a在數據集上的信息熵。屬性a的可能取值越多,IV(a)越大。
ID3 模型會偏好選擇屬性數目多的屬性,C4.5會偏好選擇屬性數目少的屬性。在實際應用中先從候選劃分屬性中找出信息增益高于平均水平的屬性,再從中選擇增益率最高的。
1.3.5 基尼指數
根據基尼指數選擇屬性,形成決策樹的模型稱為CART。
Gini(D)=1?∑k=1∣y∣pk2Gini(D)=1-\sum_{k=1}^{|y|}p_k^2Gini(D)=1?∑k=1∣y∣?pk2?
基尼指數反應了從D中隨機抽取兩個樣例,其類別標識不一樣的概率。
基尼指數越小,數據集D的純度越高。
例如樣本集中有黑球和白球兩種。基尼指數反應了兩次取到的球顏色不一樣的概率。
屬性a的基尼指數:Gini_index(D,a)=∑v=1V∣Dv∣∣D∣Gini(D)Gini\_index(D,a)=\sum_{v=1}^V\dfrac{|D^v|}{|D|}Gini(D)Gini_index(D,a)=∑v=1V?∣D∣∣Dv∣?Gini(D)
在候選屬性集中,選擇那個劃分后基尼指數最小的屬性。
1.3.6 信息熵與基尼指數
對函數f(x)=-lnx在x=1處展開一階泰勒展開,得到f(x)≈1?xf(x)\approx1-xf(x)≈1?x
信息熵 Ent(D)=?∑k=1∣y∣pk?log2pk≈∑k=1∣y∣pk(1?pk)Ent(D)=-\sum_{k=1}^{|y|}p_k*log_2p_k\approx\sum_{k=1}^{|y|}p_k(1-p_k)Ent(D)=?∑k=1∣y∣?pk??log2?pk?≈∑k=1∣y∣?pk?(1?pk?)這個式子和基尼指數是等價的。
也就是說基尼指數和信息熵從數學公式上來講,約等于。
根據屬性選擇的標準不同決策樹分為三類:ID3、C4.5和CART。
1.3.7 連續值屬性
還有一個問題是關于連續值屬性的分割問題。
連續屬性的取值數量不再有限制。此時需要連續屬性離散化。最簡單的策略是采用二分法。
給定樣本集 D 和連續屬性 α,假定 α在 D 上出現了 η個不同的取值,將這些值從小到大進行排序,記為α1α2..,an{α^1 α^2..,a^n}α1α2..,an。對于屬性值相鄰的兩個樣本aia^iai和ai+1a^{i+1}ai+1來說,可以選擇Ta=ai+ai+12T_a=\dfrac{a^i+a^{i+1}}{2}Ta?=2ai+ai+1?作為分割點。
例如在一個數據集中有4個樣本,年齡分別為25,35,21,28。將屬性值標在數軸上:21,25,28,35。在第一個和第二個元素之間使用23作為分割點。小于等于23的是一部分,大于23的是一部分。同理,在第二個元素和第三個元素使用26.5作為分割點,在第三個和第四個元素之間用31.5作為分割點。
(以上內容來自西瓜書)。
2 回歸樹
回歸樹是決策樹用于解決回歸類問題的應用。經典案例是用運動員的從業年限和表現,預測運動員的工資。
回歸樹背后的含義是:
對空間做劃分,拿著一把刀垂直于坐標軸砍一刀,將整個平面分為不同的矩形。
例如圖中R1={X|Years<4.5} , R2={X|Years>4.5, Hits<117.5},R3={X|Years>4.5,Hits>=117.5}
如果說邏輯回歸是產出一條邊界完成分類,那么決策樹就是拿起一把刀,垂直于坐標軸砍一刀,把平面分成一個一個的小矩形。
2.1 回歸樹構建方法
把整個空間切分成J個沒有重疊的區域R1,R2...RJR_1,R_2...R_JR1?,R2?...RJ?
其中每一個區域RjR_jRj?中的樣本都給一樣的預測結果:=1n∑j∈Rjyj=\dfrac{1}{n}\sum_{j \in R_j}y_j=n1?∑j∈Rj??yj? 也就是區域內所有樣本的y值的平均值。
目標函數 RSS=∑j=1J∑i∈Rj(yi?y~)2RSS=\sum_{j=1}^J\sum_{i \in R_j}(y_i-\tilde{y})^2RSS=∑j=1J?∑i∈Rj??(yi??y~?)2,要是的RSS最小。
求解最小值的方法是:探索式的遞歸二分。自頂向下:不斷從當前位置把樣本切到2個分支中。貪婪:每次選擇當前最優切割方法。
如果我把平面一直切,切到最后一個區域只要一個元素,這就發生了過擬合。而且這樣的切分毫無意義。
為了防止過擬合,引入正則化項。
Ta{T_a}Ta?是生成樹的葉子節點個數。α\alphaα是正則化系數。
3 從決策樹到隨機森林
過擬合的本質是樣本數據中是有噪聲的。類比于練習冊的答案是有錯誤的,全部按照答案去學,是不能拿到高分的。
3.1 bagging思想
bagging是每次從樣本集中抽取一部分樣本進行學習。根據抽取出的樣本做學習。
對于t=1,2…T
1)對訓練集進行第t次隨機采樣,共采集m次,得到一個樣本量為m的采樣集DmD_mDm?
2)用采樣集DmD_mDm?訓練第m個學習器Gm(x)G_m(x)Gm?(x)。
對于分類場景,則T個學習器投票,票數最多的結果為最終類別。對于回歸場景,T個學習器得到的結果進行算數平均得到的值為最終輸出結果。
3.2 隨機森林
隨機森林(random forest)是一種基于樹模型的bagging優化版本。不同之處是:
RF選擇CART樹作為基學習器。
對于t=1,2…T
1)對訓練集進行第t次隨機采樣,共采集m次,得到一個樣本量為m的采樣集DmD_mDm?
2)用采樣集DmD_mDm?訓練第m個學習器Gm(x)G_m(x)Gm?(x)。在訓練決策樹模型節點的時候,選擇所有特征中的一部分特征,進行訓練,在這些隨機選擇的特征中選擇一個最優的特征來做決策樹左右子樹劃分。
總結
以上是生活随笔為你收集整理的第二课 决策树与随机森林的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leetcode][第114题][JA
- 下一篇: ADB下载及常用命令