西瓜書第四章-決策樹模型

本篇內容基於西瓜書與鄒博視頻總結而成函數

第一部分:有關信息論以及熵的構造

主要知識點:spa

  • 條件熵【與聯合熵】
  • 互信息(信息增益)

個人理解:熵等價於不肯定度orm

熵的構造:

  1. 基本想法:當一個不可能發生的事情發生了,包含的信息的不肯定性大

太陽東昇西落:這件事情不攜帶任何不肯定性,而地震發生的不肯定性仍是有的,咱們的目標就是找到事情發生的不肯定性,而且使它發生的機率最小。視頻

  1. 構造:首先但願知足機率可加性:加對數 (經典底爲2,不過底數對於模型極值無心義) ,其次:機率越小\(\Rightarrow\) 不肯定信息越多\(\Rightarrow\) 添負號

即:\(p\) 【事件發生的機率)】 | 度量:\(-ln(p)\)blog

熵:全部隨機事件不肯定度的綜合,即求事件的指望
\[ \sum_{i=1}^N p(i)\cdot lnp(i) \]排序

條件熵 H(Y|X)

條件熵的定義是:是在X已經發生的狀況後,Y發生「新」的不肯定度(熵)遞歸

根據上述定義可有:\(H(X,Y)-H(X)\)事件

【X,Y全部包含的不肯定度 】 減去 【X所含的不肯定度 】 等於 【在X的基礎上的額外的不肯定度】get

若是畫出文氏圖就能更好的理解:

推導:
\[ \begin{aligned} H(X, Y)-H(X)={} &-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x} p(x) \log p(x)\\ ={} & -\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x}\left(\sum_{y} p(x, y)\right) \log p(x)\\ ={} & -\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x, y} p(x, y) \log p(x) \\ ={} & -\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x)} \\ ={} & -\sum_{x, y} p(x, y) \log p(y | x) \end{aligned} \]
能夠發現上面最後這個式子不是很友好,前面是聯合機率,後面是條件機率,將上面的聯合機率變爲條件機率看你那個獲得什麼結果?
\[ \begin{aligned} H(X, Y)-H(X)={}& -\sum_{x, y} p(x, y) \log p(y | x) \\ ={} & -\sum_{x} \sum_{y} p(x, y) \log p(y | x) \\ ={} & -\sum_{x} \sum_{y} p(x, y) \log p(y | x) \\ ={} & -\sum_{x} p(x) p(y | x) \log p(y | x) \\ ={} & \sum_{x} p(x)\left(-\sum_{y} p(y | x) \log p(y | x)\right) \\ ={} &\sum_{x} p(x) H(Y | X=x) \end{aligned} \]
上述公式其實很好理解,咱們代入決策樹的思考環境去思考這個問題。加入新的信息量是有兩個。一是真實類別信息,二是\(A=(a_1,a_2,\dots,a_V)\) ,熵的英文爲:\(information \ entropy\) ,\(D\) 表明數據集,根據標籤\(target\)可將\(D\)分爲\(K\)類。根據特徵\(A\),可將\(D\)分爲\(V\)類。

始終記住:熵的公式是根據真實類別計算的「純度或不肯定度
\[ Ent(D)=-\sum_{k=1}^{K}p_kln(p_k) \]

信息增益:加入特徵先後的熵的便函

根據定義:\(Ent(D)-Ent(D|A)\)
\[ \begin{aligned} Ent(D)-Ent(D|A) ={} & Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) \\ \end{aligned} \]
這個等號在概念上很好理解,咱們根據加入A後計算各個子節點的熵,由於每一個子節點劃分後樣本數量不相同,因此要對這些熵進行加權處理。可是數學上又須要一個解釋。

\[ \begin{aligned} Ent(D|A) ={} &-\sum_{v, k} p\left(D_{v}, A_{i}\right) \log p\left(D_{v} | A_{i}\right) \\ ={} & -\sum_{v, k} p\left(A_{v}\right) p\left(D_{k} | A_{v}\right) \log p\left(D_{k} | A_{v}\right)\\ ={} & -\sum_{v=1}^{V} \sum_{k=1}^{K} p\left(A_{v}\right) p\left(D_{k} | A_{v}\right) \log p\left(D_{k} | A_{v}\right)\\ ={} & -\sum_{v=1}^{V} \frac{\left|D_{v}\right|}{|D |} \sum_{k=1}^{K} \frac{\left|D_{v k}\right|}{\left|D_{v}\right|} \log \frac{\left|D_{v k}\right|}{\left|D_{v}\right|} =-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) \end{aligned} \]

這裏的公式比較複雜,在西瓜書中\(D^v\) 說明一開這個數據集是由特徵\(A\) 進行劃分,可是這又是熵的計算,熵是根據樣本分類\(K\)計算的不肯定度。因此這裏數據集\(D_{vk}\) 是先對\(A\)進行劃分,以後再在\(D_V\)的基礎上對分類\(K\)進行劃分。

第二部分 決策樹生成策略

決策樹採用的是自頂而下的遞歸方法,其基本思想是以信息熵爲度量,選擇熵值降低最快【信息增益最大】的屬性做爲第一個結點,以後的特徵依次以此爲標準生成決策樹。終止條件:到葉子結點處的熵值爲0,此時每一個葉節點中的實例屬於同一類。

以下圖分析:

以前咱們以信息熵做爲度量,以信息增益做維選擇特徵的決策依據,其實還有其餘的依據:

經常使用三種算法:

  • ID3:信息增益(已學)
  • C4.5:信息增益率(本節內容)
  • CART:Gini係數(本節內容)

信息增益率

信息增益有個缺點。假設西瓜分爲兩類,好瓜和壞瓜。50個樣本,其中一特徵有100個屬性。若用此屬性做爲劃分依據,劃分後每一個類別的熵都爲0【由於每一個類別的瓜均可以被分到一節點,還記得怎麼計算增益率嗎?是先用V進行劃分,再用K進行劃分。這裏V劃分結束後,K已經不用劃分了,由於只多是一種類別】

屬性\(a\)的固有值:
\[ \mathrm{IV}(a)=-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \log _{2} \frac{\left|D^{v}\right|}{|D|} \]
\(a\)越大\(\Rightarrow\) \(D^v\) 越均勻 \(\Rightarrow\) 熵值越大

信息增益率:
\[ \text { Gain ratio }(D, a)=\frac{\operatorname{Gain}(D, a)}{\operatorname{IV}(a)} \]

基尼係數 Gini

基尼數據定義:隨機抽取兩個樣本,類別不同的機率。
\[ \begin{aligned} \operatorname{Gini}(D) &=\sum_{k=1}^{| \mathcal{Y |}} \sum_{k^{\prime} \neq k} p_{k} p_{k^{\prime}} \\ &=1-\sum_{k=1}^{|\mathcal{Y}|} p_{k}^{2} \end{aligned} \]
基尼指數【對照於增益】:
\[ \text { Gini } \operatorname{index}(D, a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Gini}\left(D^{v}\right) \]
最優劃分屬性:
\[ a_{*}=\underset{a \in A}{\arg \min } \operatorname{Gini} \operatorname{index}(D, a) \]

高階認識:Gini係數就是信息熵的一階泰勒近似

第三部分 算法調參

過擬合處理:

  1. 剪枝

  2. 隨機深林


剪枝

西瓜書和鄒博講的剪枝手段不同啊。

⭕【鄒博思路】:

  • 決策樹的評價

    純結點的熵爲:\(H_p=0\) ,最小

    均結點的熵爲:\(H_u=lnk\) ,最大

    對全部葉節點的熵進行求和,值越小,說明樣本的分類越精細。

    考慮到每一個結點的樣本數目是不同的,因此評價函數採用樣本加權求熵和

    評價函數:
    \[ C(T)=\sum_{t \in l e a f} N_{t} \cdot H(t) \]
    將此做爲損失函數。

  • 正則化考慮:以葉子的數目做爲複雜度

    損失函數:
    \[ C_{\alpha}=C(T)+\alpha|T_{leaf}| \]

    目標:求在保證損失不變的狀況下,模型的複雜度是多少?(剪枝係數)
    \[ \alpha = \frac{C(r)-C(R)}{<R_{leaf}>-1} \]

剪枝算法:

  • 對於給定的決策樹T:
    • 計算全部內部節點的剪枝係數;
    • 查找最小剪枝係數的結點,剪枝得決策樹\(T_k\)
    • 重複以上步驟,直到決策樹\(T\),只有1個結點;
    • 獲得決策樹序到 \(T_0T_1T_2 \dots T_k\)
    • 使用驗證樣本集選擇最優子樹

注:當用驗證集作最優子樹的標準,直接用以前不帶正則項的評價函數:\(C(T)=\sum_{t \in l e a f} N_{t} \cdot H(t)\)

⭕【西瓜書

西瓜書的剪枝手段主要是經過驗證集去選擇,而且把剪枝分爲預剪枝後剪枝

  • 預剪枝:
  • 後剪枝:在決策樹生成後進行剪枝操做

注:預剪枝基於的是貪心算法,只要驗證集精度提升了,我就剪枝,因此有欠擬合的風險。然後剪枝是自底向上對全部非葉結點進行逐一考察,時間開銷大的多,可是泛化能力提升。

連續值和缺失值處理

連續值處理:

給定樣本集\(D\)和連續屬性\(a\),假定\(a\)\(D\)上出現了\(n\)個不一樣的取值,將這些值從小到大進行排序,記爲\(\{a_l,a_2..,a_n\}\).基於劃分點\(t\)可將\(D\)分爲子集\(D_t^-\)\(D_t^+\),其中\(D_t^-\)包含那些在屬性\(a\)上取值不大於\(t\)的樣本,而\(D\)則包含那些在屬性\(a\)上取值大於\(t\)的樣本。咱們可考察包含 \(n-1\) 個元素的候選劃分點集合:
\[ T_{a}=\left\{\frac{a^{i}+a^{i+1}}{2} | 1 \leqslant i \leqslant n-1\right\} \]
縷一縷:一個結點有\(n-1\)個候選劃分點:

綜上公式改成:
\[ \begin{aligned} \operatorname{Gain}(D, a) &=\max _{t \in T_{a}} \operatorname{Gain}(D, a, t) \\ &=\max _{t \in T_{a}} \operatorname{Ent}(D)-\sum_{\lambda \in\{-,+\}} \frac{\left|D_{t}^{\lambda}\right|}{|D|} \operatorname{Ent}\left(D_{t}^{\lambda}\right) \end{aligned} \]
缺省值:

咱們需解決兩個問題:(1)如何在屬性值缺失的狀況下進行劃分屬性選擇?(2)給定劃分屬性,若樣本在該屬性上的值缺失,如何對樣本進行劃分?

完好失值樣本所佔的比例:
\[ \rho=\frac{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in D} w_{\boldsymbol{x}}} \]
無樣本下第k類的比例和第v個屬性的比例:【與以前的公式相同】
\[ \begin{aligned} \tilde{p}_{k} &=\frac{\sum_{\boldsymbol{x} \in \tilde{D}_{k}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}} \quad(1 \leqslant k \leqslant|\mathcal{Y}|) \\ \tilde{r}_{v} &=\frac{\sum_{\boldsymbol{x} \in \tilde{D}^{v}} w_{\boldsymbol{x}}}{\sum_{\boldsymbol{x} \in \tilde{D}} w_{\boldsymbol{x}}} \quad(1 \leqslant v \leqslant V) \end{aligned} \]
\(w_x\)是每一個樣本\(x\)的權重,根結點中的樣本權重爲1。

增益公式推廣爲:
\[ \begin{aligned} \operatorname{Gain}(D, a) &=\rho \times \operatorname{Gain}(\tilde{D}, a) \\ &=\rho \times\left(\operatorname{Ent}(\tilde{D})-\sum_{v=1}^{V} \tilde{r}_{v} \operatorname{Ent}\left(\tilde{D}^{v}\right)\right) \end{aligned} \]

多變量決策樹

⭕同一個特徵能夠進行屢次判別:

⭕通常而言,分類邊界爲:軸平行(axis-parallel),可是也能夠將線性分類器做爲決策標準,能夠產生"斜"這的分類邊界。

技巧:可利用斜着的分裂邊界簡化決策樹模型

相關文章
相關標籤/搜索