決策樹歸納

2021-08-19 20:03:52 字數 1885 閱讀 5366

決策樹歸納是從有類標號的訓練樣本中學習決策樹,決策樹是一種類似於流程圖的樹結構,其中,每個內部結點(非樹葉結點)表示在乙個屬性上的測試,每個分枝代表該測試的乙個輸出,而每個樹葉結點(或終端結點)存放乙個類標號。

id3、c4.5、cart都採用貪心(即非回溯的)方法,只考慮當前純度差最大的情況作為分割點,其中決策樹以自頂向下遞迴的分治方式構造。

決策樹構建的基本步驟如下:

1. 開始,所有記錄看作乙個節點

2. 遍歷每個變數的每一種分割方式,找到最好的分割點

3. 分割成兩個節點n1和n2

4. 對n1和n2分別繼續執行2-3步,直到每個節點足夠「純」為止

決策樹的變數可以有兩種:

1) 數字型(numeric):變數型別是整數或浮點數,如前面例子中的「年收入」。用「>=」,「>」,「

2) 名稱型(nominal):類似程式語言中的列舉型別,變數只能重有限的選項中選取,比如前面例子中的「婚姻情況」,只能是「單身」,「已婚」或「離婚」。使用「=」來分割。

如何評價分割點的好壞?如果乙個分割點可以將當前的所有結點分為兩類,使得每一類都很「純」,也就是同一類的記錄較多,那麼就是乙個好分割點。比如上面的例子,「擁有房產」可以將記錄分為兩類,「是」的節點全部都可以償還債務,非常「純」;「否」的節點,可以償還貸款和無法償還貸款的人都有,不是很「純」,但是兩個節點加起來的純度之和與原始結點的純度之差最大,所以按照這種方法分割,只考慮當前純度最大的情況進行分割,也體現了貪心演算法。

量化純度

根據純度來選擇決策的節點,那麼如和量化純度呢?一般有三種方法:

1.資訊增益:

id3演算法根據資訊增益選擇特徵。使用資訊增益有乙個缺點,那就是它偏向於具有大量值的屬性,也就是說在訓練中,某個屬性所取的不同值的個數越多,那麼就月可能拿它來作為**屬性,而且id3不能處理連續分布的資料特徵,於是有了c4.5演算法。cart也支援連續分布的資料特徵。

2.增益率:

c4.5演算法並不是直接選擇增益率最大的候選屬性劃分,而是使用了乙個啟發式:先從候選劃分屬性中找到資訊增益高於平均水平的屬性,再從中選擇增益率最高的。

3.基尼係數:

cart決策樹使用的「基尼係數」來選擇劃分屬性。

停止條件

決策樹的構建規程是乙個遞迴的過程,所以需要確定停止條件,否則過程將不會結束。

一種最直觀的方式是當每個子節點只有一種型別的記錄時停止,但是這樣往往會使得樹的節點過多,導致過擬合問題。

另一種可行的方法是當前節點的記錄數低於乙個最小的閥值,那麼就停止分割。

剪枝處理

剪枝的基本策略有「預剪枝」和「後剪枝」。

預剪枝是值在決策樹生成過程中,對每個節點在劃分前先進行估計,若當前節點的劃分不能帶來決策樹泛化效能提公升,則停止劃分並將當前節點標記為葉節點。預剪枝使得決策樹的很多分支都沒有「展開」,這不僅降低了過擬合的風險,還顯著減少了決策樹的訓練時間開銷和測試時間開銷,但另一方面,有些分支的當前劃分雖不能提公升

後剪枝則是先從訓練集生成一棵完整的決策樹,然後自底向上地對非葉節點進行考察,若將該節點對應的子樹替換為葉節點能帶來決策樹泛化效能提公升,則將該子樹替換為葉節點。

決策樹學習歸納 STAR20180303

key 資訊熵 熵 entropy 概念 資訊和抽象,如何度量?1948年,夏農提出了 資訊熵 entropy 的概念 一條資訊的資訊量大小和它的不確定性有直接的關係,要搞清楚一件非常非常不確定的事情,或者 是我們一無所知的事情,需要了解大量資訊 資訊量的度量就等於不確定性的多少 例子 猜世界盃冠軍...

決策樹和CART決策樹

首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...

決策樹(二)決策樹回歸

回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...