【机器学习】决策树知识点小结
決策樹原理簡述
決策樹是一類常見的機器學習方法,它是基于樹的結構進行決策的。每次做決策時選擇最優劃分屬性,一般而言,隨著劃分過程不斷進行,我們希望決策樹的分支節點所包含的樣本盡可能屬于同一個類別,即節點的“純度”(purity)越來越高。
決策樹學習算法包含特征選擇、決策樹的生成與剪枝過程。決策樹的學習算法通常是遞歸地選擇最優特征,并用最優特征對數據集進行分割。開始時,構建根節點,選擇最優特征,該特征有幾種值就分割為幾個子集,每個子集分別遞歸調用此方法,返回節點,返回的節點就是上一層的子節點。直到達到終止條件。(預剪枝條件等)
關于各種熵的介紹見各類熵總結
常用的決策樹算法有ID3,C4.5和CART。(還有一個C5.0不過是商用版本,在C4.5的基礎上做了很多改進。)
- ID3:以信息增益為準則來選擇劃分屬性。
- C4.5:使用信息增益率來進行屬性的選擇。
- CART:使用基尼系數來選擇劃分屬性。
各類決策樹的具體的算法流程見ID3,C4.5,CART決策樹
信息增益率的優缺點
優點:ID3使用信息增益去對決策樹進行劃分,經常偏向于分支較多的特征分裂,因為具有較多屬性值的特征,分裂后其信息增益通常較大。此時就會有較大的概率出現每個分支節點只包含一個樣本這種情況,此時分支節點的純度達到最大,但顯然這種決策樹是不具備泛化能力的,無法對新樣本進行有效的預測。總結一下:信息增益對可取屬性數目較多的特征有所偏好,而信息增益率減少了這種偏好可能帶來的不利影響。
缺點:信息增益率偏向取值較少的特征,當特征取值較少時信息增益率求解公式分母較小,因而信息增益率比較大。所以它偏向取值較少的特征。
綜合其優缺點:我們在使用信息增益率時,通常也并不是直接使用。而是先在候選特征中找出信息增益高于平均水平的特征,然后在這些特征中再選擇信息增益率最高的特征。
決策樹的剪枝策略
樹的剪枝策略分為兩種,一種為在樹生成過程中的預剪枝策略,另一種為樹在生成之后的后剪枝策略。具體參見之前寫的文章樹的剪枝策略。
樹的剪枝主要是為了防止樹的過擬合,提高樹模型的泛化能力。(剪枝之后的分類誤差不能相差太大。)
C4.5對ID3做了哪些改進
ID3算法是采用信息增益作為評價標準進行分支的決策樹算法。
ID3的缺點:
C4.5算法主要對ID3作出了以下方面的改進:
C4.5的缺點:
無論是ID3還是C4.5最好在小數據集上使用,決策樹分類一般只適用于小數據。當屬性取值很多時最好選擇C4.5算法,ID3得出的效果會非常差。
?
C4.5如何處理連續數值型特征
C4.5既可以處理離散型特征,也可以處理連續型特征。對于連續分布的特征,其處理方法是:先把連續特征轉換為離散特征再進行處理。雖然本質上特征的取值是連續的,但對于有限的采樣數據它是離散的,如果有N個樣本,那么我們就有N-1種離散化的方法。(離散屬性的離散化通常是分兩類,小于等于某一個分割點的為一類,大于某一個分割點的為一類。)具體分割點的選擇是根據計算信息增益,選擇有最大信息增益的分割點。另外,在分割之前,我們還需要對連續屬性進行排序(升序),這樣可以大大減少運算量。經證明,在決定連續特征的分界點時采用信息增益這個指標,而選擇屬性的時候才使用信息增益率這個指標能選擇出最佳分類特征。
具體步驟如下:
分裂點的信息增益修正方法:
將信息增益減去得到修正后的信息增益。其中N是連續特征的取值個數,D是訓練數據數目。此修正的原因在于:當離散特征與連續特征并存時,C4.5算法傾向于選擇連續特征做最佳樹分裂點。
C4.5與CART的區別
兩者都是決策樹,但CART既可以做分類,又可以做回歸,而C4.5只是用于分類。
C4.5是構造決策樹來發現數據中蘊含的分類規則,是一種通過劃分特征空間逼近離散函數值的方法。C4.5是基于ID3的改進算法。使用信息增益率作為劃分依據。分類規則是互斥并且完備的。所謂互斥即每一條樣本記錄不會同時匹配上兩條分類規則,所謂完備即每條樣本記錄都在決策樹中都能匹配上一條規則。
CART本質是對特征空間進行二元劃分(即CART生成的決策樹是一顆二叉樹),并能夠對標量特征與連續特征進行分裂。在對標量特征進行劃分時,分為等于某個特征屬性和不等于;對連續特征進行劃分時,分為大于和小于等于。并且在分類的時候是采用GINI系數作為衡量標準,而不是信息增益了;在回歸時,是使用最小均方誤差作為評價。
CART對于特征的利用是可以重復的,而作為分類的C4.5則是不能重復利用特征。
分類樹和回歸樹聯系區別
分類樹:
以C4.5分類樹為例,C4.5分類樹在每次分枝時,是窮舉每一個feature的每一個閾值,找到使得按照feature<=閾值,和feature>閾值分成的兩個分枝的集合信息熵最小的閾值,按照該標準分枝得到兩個新節點,用同樣方法繼續分枝直到得到類別唯一的葉子節點,或達到預設的終止條件,若最終葉子節點中的性別不唯一,則以占有最多數的類別作為該葉子節點的最終分類類別。
回歸樹:
回歸樹總體流程也是類似,區別在于,回歸樹的每個節點(不一定是葉子節點)都會得一個預測值,以年齡為例,該預測值等于屬于這個節點的所有人年齡的平均值。分枝時窮舉每一個feature的每個閾值找最好的分割點,但衡量最好的標準不再是信息熵(信息增益),而是最小化均方誤差即(每個人的年齡-預測年齡)^2 的總和 / N。也就是被預測出錯的人數越多,錯的越離譜,均方差就越大,通過最小化均方差能夠找到最可靠的分枝依據。分枝直到每個葉子節點上人的年齡都唯一或者達到預設的終止條件(如葉子個數上限),若最終葉子節點上人的年齡不唯一,則以該節點上所有人的平均年齡做為該葉子節點的預測年齡。
總結:
CART樹對離散特征取值數目>=3對特征如何處理
因為CART樹是二叉樹,所以對于樣本離散特征有N>=3個取值時的處理也只能有兩個分支,這就要通過人為組合創建二取值序列并取GiniGain最小者作為樹分叉的決策點。如某特征值具有[‘young’,’middle’,’old’]三個取值,那么二分序列會有如下3種可能性(空集和滿集在CART分類中沒有意義):?[((‘young’,), (‘middle’, ‘old’)), ((‘middle’,), (‘young’, ‘old’)), ((‘old’,), (‘young’, ‘middle’))]。
采用CART算法,就需要分別計算按照上述List中的二分序列做分叉時的Gini系數,然后選取產生最小的GINIGain的二分序列做該特征的分叉二值序列參與樹構建的遞歸。如果某特征取值有4個,那么二分序列組合就有7種,5個取值就有15種組合。
因此CART不適用于離散特征有過多取值可能的場景。此時,若一定要使用CART,則最好預先人為的將離散特征的取值縮減。?
那么對于二分后的左右分支,如果特征取值tuple中元素多于2個,該特征一般還是需要繼續參與到子數據集的分割中去。這在一定程度上有助于提升模型的精度(一定意義上改進了C4.5完全的貪心算法,使得模型有一定的全局(局部)特征考量的性質)。
決策樹對缺失值的處理方法
缺失值問題可以從四個方面來考慮
1.在進入模型開始訓練之前,我們可以對缺失值做上一定的處理。
2. 在選擇分裂屬性的時候,訓練樣本存在缺失值,如何處理?(計算分裂損失減少值時,忽略特征缺失的樣本,最終計算的值乘以比例(實際參與計算的樣本數除以總的樣本數))
假如你使用ID3算法,那么選擇分類特征時,就要計算所有特征的熵減(信息增益,Gain)。假設10個樣本,特征是a,b,c。在計算a特征熵時發現,第10個樣本的a特征缺失,那么就把第10個樣本去掉,前9個樣本組成新的樣本集,在新樣本集上按正常方法計算a特征的熵減。然后結果乘0.9(未缺失樣本的比例),就是a特征分裂最終的熵。
3. 分類特征選擇完成,對訓練樣本分類,發現樣本特征缺失怎么辦?(將該樣本分配到所有子節點中,權重由1變為具有特征a的樣本被劃分成的子集樣本個數的相對比率,計算錯誤率的時候,需要考慮到樣本權重)
4. 訓練完成,給測試集樣本分類,有缺失值怎么辦?(分類時,如果待分類樣本有缺失變量,而決策樹決策過程中沒有用到這些變量,則決策過程和沒有缺失的數據一樣;否則,如果決策要用到缺失變量,決策樹也可以在當前節點做多數投票來決定(選擇樣本數最多的特征值方向)。)
如果決策樹屬性用完了仍未對決策樹完成劃分應該怎么辦
當訓練集很大以及特征數量并不是很多的情況下,這種狀況很容易發生。此時的解決方法一般有兩種:
決策樹需要進行歸一化處理嗎?
在之前的文章中有講過類似的問題,這里再重復一遍。決策樹是概率模型,為什么是概率模型呢,不要以為那些有貝葉斯公式、類條件概率、后驗概率的模型才是概率模型。決策樹其實是一種簡單高效并且具有強解釋性的概率模型,是給定特征條件下類的條件概率分布的一種退化表示(并不求解概率密度函數但依據訓練樣本可以得到類頻率代替概率)。
概率模型是不需要歸一化的,因為它們不關心變量的值,而是關心變量的分布和變量之間的條件概率。數值縮放不會影響決策樹的分裂點位置。
二叉決策樹與多叉決策樹相比各有什么特點
二叉決策樹不像多叉樹那樣會形成過多的數據碎片,而二叉決策樹可能會得到更深的最終決策樹。
決策樹構建過程中較為耗時的步驟
確定最佳分割點,在該步驟中需要對特征值進行排序,計算信息增益等,非常耗時。
決策樹算法主要應用于非線性模型,若已知數據集是滿足線性假設的,那么我們可以直接用一個線性模型取得比較好的預測結果
決策樹特征的重復選擇
決策樹中一個特征被選擇過后依然是有可能被選擇為分裂特征的。
- 若特征為離散特征,如果決策樹為二叉樹,則可以在分類的子區間繼續劃分,如果決策樹為多叉樹,通常進行一次劃分。
- 若特征為連續特征,則可能在決策樹中多次被選擇。
決策樹模型的優缺點
優點:
缺點:
樹模型的應用場景
模型應用場景可參考如下:
- 如果不強調模型的解釋度,盡量避免單棵決策樹,用集成樹模型
- 在集成樹模型中,優先推薦使用xgboost
- 在中小數據集上,優先選擇集成樹模型。大數據集上推薦神經網絡
- 在需要模型解釋度的項目上,優先使用樹模型
- 在項目時間較短的項目上,如果數據質量低(大量缺失值、噪音等),優先使用集成樹模型
- 在硬件條件有限及機器學習知識有限的前提下,優先選擇樹模型
?
https://www.cnblogs.com/end/p/3328379.html
?
?
總結
以上是生活随笔為你收集整理的【机器学习】决策树知识点小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】支持向量机面试知识点小结
- 下一篇: 【机器学习】集成学习知识点总结一