決策樹初步理解

2021-09-11 02:57:51 字數 2291 閱讀 7438

決策樹是最簡單的機器學習演算法,它易於實現,可解釋性強,完全符合人類的直觀思維,有著廣泛的應用。決策樹到底是什麼?簡單地講,決策樹是一棵二叉或多叉樹(如果你對樹的概念都不清楚,請先去學習資料結構課程),它對資料的屬性進行判斷,得到分類或回歸結果。**時,在樹的內部節點處用某一屬性值(特徵向量的某一分量)進行判斷,根據判斷結果決定進入哪個分支節點,直到到達葉子節點處,得到分類或回歸結果。這是一種基於if-then-else規則的有監督學習演算法,決策樹的這些規則通過訓練得到,而不是人工制定的。

上面的說法過於抽象,下面來看乙個實際的例子。銀行要用機器學習演算法來確定是否給客戶發放貸款,為此需要考察客戶的年收入,是否有房產這兩個指標。領導安排你實現這個演算法,你想到了最簡單的線性模型,很快就完成了這個任務。

模型的決策邊界: -20 + 3×\times× 年收入 +20×\times×是否有房 = 0

決策規則為:

-20 + 3×\times×年收入 +20×\times×是否有房 >= 0 可貸款

-20 + 3×\times×年收入 +20×\times×是否有房 < 0 不可貸款

你拿著精心設計出來的模型去跟領導講,但是發現沒人聽得懂你在幹嘛,領導認為你根本不懂得怎麼評估客戶。

這次碰壁之後,你冥思苦想,給出了另外乙個方案。風控業務員是怎麼判斷是否給使用者貸款的?他們的做法很簡單:

1.首先判斷客戶的年收入指標。如果大於20萬,可以貸款;否則繼續判斷。

2.然後判斷客戶是否有房產。如果有房產,可以貸款;否則不能貸款。

如果用圖形表示這個決策過程,就是一棵決策樹。決策過程從樹的根節點開始,在內部節點處需要做判斷,直到到達乙個葉子節點處,得到決策結果。決策樹由一系列分層巢狀的判定規則組成,是乙個遞迴的結構。這個例子的決策樹如下圖所示:

在上圖中,內部節點用矩形表示,葉子節點用橢圓表示。這個模型一目了然,領導一聽就懂,而且覺得你非常專業。

決策樹出現於2023年代。決策樹的實現有id3,c4.5,cart(classification and regression tree,分類與回歸樹)等方法,它們的區別在於樹的結構與構造演算法。決策樹是一種判別模型,天然支援多類分類問題。如果用於分類問題,決策樹稱為分類樹;如果用於回歸問題,則稱為回歸樹。

分類樹對應的對映函式是多維空間的分段線性劃分,即用平行於各個座標軸的超平面對空間進行切分;回歸樹的對映函式是分段常數函式。決策樹是分段線性函式但不是線性函式,它具有非線性建模的能力。只要劃分的足夠細,分段常數函式可以逼近閉區間上任意函式到任意指定精度,因此決策樹在理論上可以對任意複雜度的資料進行分類或者回歸。對於分類問題,如果決策樹深度夠大,它可以將訓練樣本集的所有樣本正確分類。但如果特徵向量的維數過高,可能會遇到維數災難導致準確率下降。

現在要解決的關鍵問題是怎樣用訓練樣本建立決策樹。如果對於分類問題,訓練得到的決策樹至少要讓訓練樣本盡快能的被分正確。

直觀的想法是從根節點開始構造,遞迴的用訓練樣本集建立起決策樹,這棵樹能夠將訓練集正確的分類,或者對訓練集的回歸誤差最小化。為此要解決以下問題:

如果特徵向量有多個分量,每個決策節點上應該選擇哪個分量做判定?例如上圖中有x和y兩個分量,我們哪x做判定還是拿y做判定?這個判定會將訓練樣本集一分為二,然後用這兩個子集構造左右子樹。

在選定乙個特徵後,具體**的規則是什麼?即滿足什麼條件時進入左子樹分支。對數值型變數(可以比較大小,如收入,年齡)的做法是尋找乙個**閾值進行判斷,小於該閾值進入左子樹,否則進入右子樹。對於類別型變數(不能比較大小,只是對型別的編號,如將紅色編成1,藍色為2)則需要為它確定乙個子集劃分,將特徵的取值集合劃分成兩個不相交的子集,如果特徵的值屬於第乙個子集則進入左子樹,否則進入右子樹。

何時停止**,把節點設定為葉子節點?對於分類問題,當節點的樣本都屬於同一型別時停止,但是這樣可能會導致樹的節點過多、深度過大,產生過擬合問題。另一種方法是當節點中的樣本數小於乙個閥值時停止**。

如何為每個葉節點賦予類別標籤或者回歸值?即到達葉子節點時樣本被分為哪一類或者賦予乙個什麼實數值。

下面給出這幾個問題的答案以及訓練演算法。特徵有數值型變數和類別型變數兩種情況,決策樹分分類樹和回歸樹兩種情況,限於篇幅,我們只對數值型變數進行介紹。

訓練演算法是乙個遞迴的過程。首先建立根節點,然後建立左子樹和右子樹。如果練樣本集為ddd,訓練演算法的整體流程為:

1.用樣本集ddd建立根節點,找到乙個判定規則,將樣本集**成d1d_1d1和d2d_2d2兩部分,同時為根節點設定判定規則。

2.用樣本集d1d_1d1遞迴建立左子樹。

3.用樣本集d2d_2d2遞迴建立右子樹。

4.如果不能再進行**,則把節點標記為葉子節點,同時為它賦值。

決策樹理解

當前屬性集為空,或所有樣本在屬性集上取值相同,無法劃分 當前節點包含樣本集合為空,無法劃分。c4.5 使用資訊增益比作為選擇特徵的準則 cart 使用 gini 指數作為選擇特徵的準則。gini 指數更偏向於連續屬性,熵更偏向於離散屬性。決策樹的生成。通常是利用資訊增益最大 資訊增益比最大 gini...

gbdt決策樹的理解

參考 1 2 3 cart回歸樹建立節點時,是最小化均方誤差來求,cart回歸樹的度量目標是,對於任意劃分特徵a,對應的任意劃分點s兩邊劃分成的資料集d1和d2,求出使d1和d2各自集合的均方差最小,同時d1和d2的均方差之和最小所對應的特徵和特徵值劃分點。所以最後求的值為均值。gbdt在建立單棵樹...

決策樹和CART決策樹

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