決策樹

1、概念

決策樹模型是一種描述對實例進行分類的樹形結構。決策樹由結點和有向邊組成。結點有兩種類型:內部節點和葉節點,內部節點表示一個特徵或屬性,葉節點表示一個類別。算法

分類的時候,從根節點開始,對實例的某一個特徵進行測試,根據測試結果,將實例分配到其子結點;此時,每個子結點對應着該特徵的一個取值。如此遞歸向下移動,直至達到葉結點,最後將實例分配到葉結點的類別中。函數

決策樹是一種貪心算法,要在給定時間內做出最佳選擇,但並不關心可否達到全局最優。測試

如下爲各決策樹算法比較:spa

2、ID3算法

構造決策樹即爲從上到下構造結點特徵的過程,當前結點應當選取爲對所需劃分的數據集起決定性做用的特徵。blog

香農熵

劃分數據集應當遵循的原則爲:將無序的數據變得更加有序。遞歸

香農熵(簡稱熵)被用來度量集合的信息的有序或無序。循環

一、信息的定義

若是待分類的事物可能劃分在多個分類中,則符號xi的信息定義爲:遍歷

其中p(xi)是選擇該分類的機率。方法

二、香農熵的計算

爲了計算熵,須要計算全部可能值包含的信息指望值:im

其中m表示分類的數目。

熵越高,則代表混合的數據越多,純度越低,有序程度越低,分類效果越差。

基尼不純度

基尼不純度是指未來自集合的某種結果隨機應用於某一數據項的預期偏差率:

基尼不純度越小,純度越高,集合的有序程度越高,分類的效果越好。

基尼不純度爲 0 時,表示集合類別一致;基尼不純度最高(純度最低)時,p(xi)=1/m。

信息增益

信息增益表現爲熵的減小或數據無序度的減小:

當採用基尼不純度時:

獲得最優特徵

①計算當前數據集的香農熵,記爲Hold(使用基尼不純度度量無序程度時,記爲IG_old),並記錄當前數據集的樣本數爲n,樣本類別總數爲m。

②遍歷全部特徵,設當前特徵爲i。

③遍歷特徵i的全部屬性取值,記當前取值爲j,不一樣取值總數爲γ,設特徵i取值爲j的子集樣本數爲nj,則以特徵i劃分的信息增益爲:

其中Hnewj爲對應特徵i取值爲j的子集的香農熵(IG_newj爲對應特徵i取值爲j的子集的基尼不純度)。

④選取Gi最大的特徵做爲當前結點的特徵。

構建決策樹

首先咱們將獲得原始數據集,而後基於最好的特徵劃分數據集,此時將會根據該特徵的取值不一樣而有多個分支。第一次劃分後,數據將被傳遞到樹分支的下一個結點,依照一樣的策略繼續進行劃分。

按照上述思路,咱們能夠遞歸地獲得一棵決策樹,遞歸結束的條件是:遍歷完全部劃分數據集的特徵,或每一個分支下的全部樣本都具備相同的類別。

若是當咱們遍歷完全部的特徵後,該分支下的樣本仍屬於不一樣的類別,一般採用多數表決的方法,即以其中最多樣本所隸屬的類別做爲該葉結點的取值。

3、C4.5算法

4、CART算法

ID3每次會選取當前最佳的特徵來分割數據,並按照該特徵的全部可能取值來切分,而在按照某特徵切分以後,該特徵在以後的ID3算法執行過程當中再也不起做用,有觀點認爲該方法切分過於迅速。

CART算法採用二元切分法,每次把數據切成2份。對於離散型數據,若是數據的某特徵值等於切分所要求的值,則這些數據進入左子樹,不然進入右子樹;對於連續型數據,則能夠採用迴歸方法,若是某特徵值大於給定值則進入左子樹,不然進入右子樹。

一、分類決策樹

二、迴歸樹

迴歸樹將葉結點置爲常數。即在每一個葉結點利用訓練數據的均值作預測。

一、找到最佳切分特徵

初始化最大偏差爲INF。

①遍歷全部特徵(第一重循環)

②遍歷其全部取值(第二重循環)

③按照當前的特徵及其取值,將大於該值的樣本歸於一類,小於等於該值的樣本爲另外一類,計算分爲兩類先後總平方偏差的大小,若是切分後總平方偏差之和小於切分前總平方偏差之和,則更新記錄值。

切分前總平方偏差之和計算:

切分後總平方偏差之和計算:

④全部特徵遍歷結束後,返回最佳切分特徵和最佳閾值。

注意:若是當前數據集全部樣本y取值只有一種狀況,則爲葉結點,返回葉結點常數取值(一般取y的平均值)。

二、預剪枝

能夠人爲指定最小偏差降低值tolS以及切分的最小樣本數tolN。

①若是ESum2與Esum之差小於tolS,則直接創建葉結點。

②若是切分後的兩個子集有任意一個其樣本數小於tolN,則直接創建葉結點。

三、後剪枝

該方法是基於已經構建出來的迴歸樹和給定的測試數據進行的。

①遍歷該回歸樹,若是存在任一子集爲一棵樹,則在該子集遞歸剪枝過程。

②若是當前結點的兩個分支均爲葉結點,則考慮合併:

先計算不合並的偏差(設左右結點的值分別爲Lmean、Rmean,當前測試子集在切分後左右兩個子集大小分別爲L_M、R_M):

計算合併後的偏差:

若是E2<E1,則將葉結點合併。

四、總流程

①找到最佳的遍歷特徵及其閾值。轉②。

②若是該結點不能再分(返回特徵爲None),設爲葉結點。不然轉③

③若是可分,則繼續切分,分別對左右子樹調用①。

④對獲得的迴歸樹進行後剪枝。

注意:預剪枝可合併進尋找最佳特徵及其閾值的過程當中。

三、模型樹

該方法將全部的葉結點設爲分段線性函數,每一個葉結點都是一個線性模型。其具備可解釋性、高預測準確度。

不能再使用平方偏差之和來衡量選取切分特徵時的偏差。對於給定的數據集,應當先用線性的模型對其進行擬合(好比先進行OLS線性迴歸),而後計算真實的目標值與模型預測值之間的差值。

同時,葉結點表示的線性模型的迴歸係數,而很是數。

其他步驟相似迴歸樹。

相關文章
相關標籤/搜索