決策樹面試總結

2021-09-17 04:41:21 字數 3607 閱讀 5206

1、概括

顧名思義,決策樹就是一棵樹,一顆決策樹包含乙個根節點、若干個內部結點和若干個葉結點;葉結點對應於決策結果,其他每個結點則對應於乙個屬性測試;每個結點包含的樣本集合根據屬性測試的結果被劃分到子結點中;根結點包含樣本全集,從根結點到每個葉子結點的路徑對應了乙個判定測試序列。

決策樹學習的演算法通常是乙個遞迴地選擇最優特徵,並根據該特徵對訓練資料進行分割,使得各個子資料集有乙個最好的分類的過程。這一過程對應著對特徵空間的劃分,也對應著決策樹的構建。

2、停止條件

1、當前結點包含的樣本全部屬於同一類,無需劃分

2、當前屬性集合為空,或是所有樣本在所有屬性上取值相同(所有條件都一樣,但還是無法判斷類別)

3、當前結點包含的樣本集合為空,無法劃分(沒有對應的樣本了)

決策樹演算法的核心:從屬性集中選擇最優的劃分屬性

3、如何選擇最優的劃分屬性

熵是度量樣本不純度的指標,樣本不純度越大,熵越大,越無序。熵越小,樣本的純度越高,所以決策樹的生長過程也是不斷的將資料的不純度降低的過程,希望最後得到的分類結果純的很高,也就是準確性很高。

常用的決策樹演算法有id3,c4.5,cart三種。id3 使用資訊增益作為選擇特徵的準則;c4.5 使用資訊增益比作為選擇特徵的準則;cart 使用 gini 指數作為選擇特徵的準則。

4、資訊增益:id3

熵表示的是資料中包含的資訊量大小。熵越小,資料的純度越高,也就是說資料越趨於一致,這是我們希望的劃分之後每個子節點的樣子。

資訊增益 = 劃分前熵 - 劃分後熵。資訊增益越大,則意味著使用屬性 a 來進行劃分所獲得的 「純度提公升」 越大 。也就是說,用  屬性 a 來劃分訓練集,得到的結果中純 度比較高。id3 僅僅適用於二分類問題。id3 僅僅能夠處理離散屬性。

步驟:1、首先是針對當前的集合,計算每個特徵的資訊增益

2、然後選擇資訊增益最大的特徵作為當前節點的決策決策特徵

3、根據特徵不同的類別劃分到不同的子節點(比如年齡特徵有青年,中年,老年,則劃分到3顆子樹)

4、然後繼續對子節點進行遞迴,直到所有特徵都被劃分

5、資訊增益率:c4.5

c4.5 克服了 id3 僅僅能夠處理離散屬性的問題,以及資訊增益偏向選擇取值較多特徵的問題,使用資訊增益比來選擇特徵。資訊增益比 = 資訊增益 / 劃分前熵 選擇資訊增益比最大的作為最優特徵。

c4.5 處理連續特徵是先將特徵取值排序,以連續兩個值中間值作為劃分標準。嘗試每一種劃分,並計算修正後的資訊增益,選擇資訊增益最大的**點作為該屬性的**點。但是,對連續屬性值需要掃瞄排序,會使c4.5效能下降。

id3和c4.5都是分類樹,cart(classification and regression tree)可以是分類/回歸樹。

步驟:6、基尼指數:cart

a、cart 的全稱是分類與回歸樹。從這個名字中就應該知道,cart 既可以用於分類問題,也可以用於回歸問題。cart 與 id3,c4.5 不同之處在於 cart 生成的樹必須是二叉樹。也就是說,無論是回歸還是分類問題,無論特徵是離散的還是連續的,無論屬性取值有多個還是兩個,內部節點只能根據屬性值進行二分。

b、回歸樹中,使用平方誤差最小化準則來選擇特徵並進行劃分。每乙個葉子節點給出的**值,是劃分到該葉子節點的所有樣本目標值的均值,這樣只是在給定劃分的情況下最小化了平方誤差。要確定最優化分,還需要遍歷所有屬性,以及其所有的取值來分別嘗試劃分並計算在此種劃分情況下的最小平方誤差,選取最小的作為此次劃分的依據。由於回歸樹生成使用平方誤差最小化準則,所以又叫做最小二乘回歸樹。

c、分類樹種,使用 gini 指數最小化準則來選擇特徵並進行劃分;gini 指數表示集合的不確定性,或者是不純度。基尼指數越大,集合不確定性越高,不純度也越大。這一點和熵類似。另一種理解基尼指數的思路是,基尼指數是為了最小化誤分類的概率。

分類樹:

1、首先是根據當前特徵計算他們的基尼增益

2、選擇基尼增益最小的特徵作為劃分特徵

3、從該特徵中查詢基尼指數最小的分類類別作為最優劃分點

4、將當前樣本劃分成兩類,一類是劃分特徵的類別等於最優劃分點,另一類就是不等於

5、針對這兩類遞迴進行上述的劃分工作,直達所有葉子指向同一樣本目標或者葉子個數小於一定的閾值

7、資訊增益 vs 資訊增益比

之所以引入了資訊增益比,是由於資訊增益的乙個缺點。那就是:資訊增益總是偏向於選擇取值較多的屬性。資訊增益比在此基礎上增加了乙個罰項,解決了這個問題。

8、gini 指數 vs 熵

既然這兩個都可以表示資料的不確定性,不純度。那麼這兩個有什麼區別那?

1、gini 指數的計算不需要對數運算,更加高效;

2、gini 指數更偏向於連續屬性,熵更偏向於離散屬性。

9、如何處理連續值:

因為連續屬性的可取值數目不再有限,因此不能像前面處理離散屬性列舉離散屬性取值來對結點進行劃分。因此需要連續屬性離散化,常用的離散化策略是二分法,這個技術也是c4.5中採用的策略。總結:將連續值由小到大排序,取乙個值作為劃分點進行二分,計算增益值。

10、如何抑制單顆決策樹的過擬合:

1、限制樹的深度、葉子節點最少樣本數量、結點**時的最少樣本數量等

2、對訓練樣本進行取樣、只使用部分特徵來選擇最優分類特徵

3、目標函式新增正則化項

11、剪枝(pruning)

剪枝的目的是為了避免決策樹模型的過擬合。因為決策樹演算法在學習的過程中為了盡可能的正確的分類訓練樣本,不停地對結點進行劃分,因此這會導致整棵樹的分支過多,也就導致了過擬合。決策樹的剪枝策略最基本的有兩種:預剪枝(pre-pruning)和後剪枝(post-pruning)

預剪枝(pre-pruning):預剪枝就是在構造決策樹的過程中,先對每個結點在劃分前進行估計,若果當前結點的劃分不能帶來決策樹模型泛華效能的提公升,則不對當前結點進行劃分並且將當前結點標記為葉結點。

總結: 對比未剪枝的決策樹和經過預剪枝的決策樹可以看出:預剪枝使得決策樹的很多分支都沒有「展開」,這不僅降低了過擬合的風險,還顯著減少了決策樹的訓練時間開銷和測試時間開銷。但是,另一方面,因為預剪枝是基於「貪心」的,所以,雖然當前劃分不能提公升泛華效能,但是基於該劃分的後續劃分卻有可能導致效能提公升,因此預剪枝決策樹有可能帶來欠擬合的風險。

後剪枝(post-pruning):後剪枝就是先把整顆決策樹構造完畢,然後自底向上的對非葉結點進行考察,若將該結點對應的子樹換為葉結點能夠帶來泛華效能的提公升,則把該子樹替換為葉結點。

總結:對比預剪枝和後剪枝,能夠發現,後剪枝決策樹通常比預剪枝決策樹保留了更多的分支,一般情形下,後剪枝決策樹的欠擬合風險小,泛華效能往往也要優於預剪枝決策樹。但後剪枝過程是在構建完全決策樹之後進行的,並且要自底向上的對樹中的所有非葉結點進行逐一考察,因此其訓練時間開銷要比未剪枝決策樹和預剪枝決策樹都大得多。

12、理想的決策樹

1、葉子節點數盡量少

2、葉子節點的深度盡量小(太深可能會過擬合)

13、優點

1、計算量簡單,可解釋性強,比較適合處理有缺失屬性值的樣本,能夠處理不相關的特徵;

14、缺點

1、 單顆決策樹分類能力弱,並且對連續值變數難以處理;

2.、容易過擬合(後續出現了隨機森林,減小了過擬合現象);

決策樹總結

眾所周知,決策樹是一種樹模型,可以用於分類和回歸。這裡總結一下自己認為重要的知識點 前置概念 熵 一種衡量不確定性的指標 條件熵 給定條件下的熵值 基尼不純度 表示乙個隨機選中的樣本在子集中被分錯的可能性 被選中概率 被分錯概率 資訊增益 熵 條件熵 1 三大經典決策樹 id3 選擇特徵的依據是資訊...

決策樹總結

決策樹是一種應用廣泛的機器學習演算法,過程簡單,結果易於解釋。決策樹是一種貪心演算法,它在給定時間給做出最佳選擇,並不關心能否達到全域性最優。決策樹特點 id3 不能處理連續資料,沒有剪枝過程,採用資訊增益作為標準尋找最優特徵,這種方法偏向屬性取值多的特徵。id3每次選取當前最佳的特徵來分割資料,並...

決策樹模型總結

1 決策樹定義 決策樹分為分類決策樹和回歸決策樹。分類決策樹應用範圍比較廣,其核心思想就是在乙個資料集上找到乙個最優的特徵,然後從這個特徵的選值中找到乙個最優的候選值,根據這個最優候選值將資料集劃分為兩個子資料集,然後遞迴上述操作,直到滿足指定條件為止。以下主要介紹分類決策樹。決策樹的生成過程主要包...