1. 程式人生 > >機器學習3---決策樹

機器學習3---決策樹

    決策樹(decision tree)是一種典型的非線性分類演算法。因為是針對於非數值型特徵的決策,且決策過程都是按照樹狀結構進行,由此得名決策樹。

    首先,非數值型特徵是指非數值化的特徵,如:名義特徵(使用特定的名詞描述某個物體)、序數特徵(序號等,無實際意義的數值描述),無直接函式關係的數值特徵(年齡、溫度等)。

    決策樹的定義是利用一定的訓練樣本,從資料中“”學習“”得到決策規則(建樹的過程),然後根據決策規則對新樣本進行決策(分類)。

一、建樹

    決策樹構建的過程就是選取特徵和確定決策規則(生長、剪枝)的過程。

1. 選取特徵

(1)ID3方法(互動式二分法):是最早的建樹方法,主要採用夏農熵(Shannon entropy)為判別依據。夏農熵的公式如下:

I=-(P_{1}log_{2}P_{1}+P_{2}log_{2}P_{2}...+P_{k}log_{2}P_{k}) =-\sum_{i=1}^{k}P_{i}log_{2}P_{i},其中P代表了該事件屬於每類的概率。

    若表示為某一個節點(特徵)時,可以視為該節點(特徵)對於樣本分類的“不純度”,實際應用中我們總是希望不純度越低越好,並將不純度的減少量稱之為資訊增益。

    例如,某一訓練樣本具有年齡、性別、收入三個非數值型特徵量,當我們試圖建立最有效的決策樹時,常常希望每一次分叉後都最大的減少不純度(增加類內純度)。那麼,依次計算三個特徵對應的熵值,與上一級熵值作差運算,將資訊增益最大的一個特徵作為該級的節點。按照此規則使樹生長,直到每一枝都達到葉子節點為止。

(2)C4.5演算法(資訊增益率):即使用資訊增益的比例代替(1)中的差值運算,同時增加處理連續的數值特徵功能。

(3)CART演算法(分類和迴歸樹演算法):核心思想和上述兩個一致,只是該樹每個節點都採用二分法,最後構成了二叉樹,應用較為廣泛。

2. 剪枝

    過學習在上一章已經記錄過了,欠學習我們可以繼續使樹生長,過學習就需要剪枝。剪枝分為兩類,先剪枝和後剪枝。

(1)先剪枝:控制樹的生長,即判定某些節點是否需要繼續分支。常用的判定方法有三種,資料劃分法(使用驗證集上的錯誤率決定)、閾值法(資訊增益值的閾值)、資訊增益的統計顯著性分析(卡方檢驗)。

(2)後剪枝:以回溯的方式,合併那些不會導致不純度明顯下降的同父葉子結點。

後剪枝的演算法資訊利用更為充分,但是計算代價較大,實際中常使用兩者結合的方法。

二、決策

    決策樹和神經網路分類器的形式相近,且都是在特徵空間中進行決策過程,但是決策樹是以順序的方式應用分層結構決策函式,神經網路是以並行的方式利用一組軟決策(非最終)。兩者可以相互對映,且決策樹的訓練時間往往優於神經網路分類器。

 

程式碼我調一調就發上來