決策樹演算法原理簡介

2021-09-24 09:06:47 字數 2715 閱讀 5616

1,決策樹概念簡介

不同的演算法模型適合於不同型別的資料。

首先,在了解樹模型之前,自然想到樹模型和線性模型有什麼區別呢?其中最重要的是,樹形模型是乙個乙個特徵進行處理,之前線性模型是所有特徵給予權重相加得到乙個新的值。

決策樹與邏輯回歸的分類區別也在於此,邏輯回歸是將所有特徵變換為概率後,通過大於某一概率閾值的劃分為一類,小於某一概率閾值的為另一類;而決策樹是對每乙個特徵做乙個劃分。另外邏輯回歸只能找到線性分割(輸入特徵x與logit之間是線性的,除非對x進行多維對映),而決策樹可以找到非線性分割。

而樹形模型更加接近人的思維方式,可以產生視覺化的分類規則,產生的模型具有可解釋性(可以抽取規則)。樹模型擬合出來的函式其實是分區間的階梯函式。

決策樹學習:採用自頂向下的遞迴的方法,基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子節點處熵值為0(葉節點中的例項都屬於一類)。

其次,需要了解幾個重要的基本概念:根節點(最重要的特徵);父節點與子節點是一對,先有父節點,才會有子節點(增加節點相當於在資料中切一刀);葉節點(最終標籤)。所有的資料最終都會落到葉子節點,既可以做分類也可以做回歸

2,決策樹的訓練與測試

2.1 訓練階段:

從給定的訓練集構造出來一棵樹(從跟節點開始選擇特徵(節點),如何進行特徵切分使得分類的效果更好)。通過一種衡量標準,來計算通過不同特徵進行分支選擇後的分類情況,找出來最好的那個當成根節點,以此類推。

衡量標準-熵:熵是表示隨機變數不確定性的度量(在物理化學中,物體內部的混亂程度)。例如雜貨市場裡面什麼都有,肯定混亂(熵值高),而專賣店裡面只賣乙個牌子的那就很穩定多(熵值低)。

熵的表示式:

p代表概率值,當p接近於1時(概率大),h接近於0(熵值低)。不確定性越大,得到的熵值也就越大。當p=0或p=1時,h§=0,隨機變數完全沒有不確定性。當p=0.5時,h§=1,此時隨機變數的不確定性最大

資訊增益:表示特徵x使得類y的不確定性減少的程度(遍歷所有特徵,選擇使分類後的資訊增益最大化的特徵作為根節點,然後從剩下地特徵重複上述操作,直至決策樹構造完成)。

決策樹構造例項:

資料:14天打球情況; 特徵:4種環境變化;

劃分方式有4種:

在歷史資料中(14天)有9天打球,5天不打球,所以當前系統的熵應為:

然後在4個特徵逐一分析,先從outlook特徵開始:

根據熵的表示式可以計算得:outlook = sunny時,熵值為0.971;outlook = overcast時,熵值為0;outlook = rainy時,熵值為0.971

根據歷史資料統計outlook取值分別為sunny,overcast,rainy的概率分別為:5/14, 4/14, 5/14

熵值計算:

系統的熵值從原始的0.940下降到了0.693,增益為0.247。同樣的方式可以計算出其他特徵的資訊增益,那麼我們選擇最大的那個相當於是遍歷了一遍特徵,找出來了根節點,然後再其餘的中繼續通過資訊增益找下面的節點。

以上演算法步驟稱為id3演算法,對於稀疏特徵(屬性非常多,樣本量非常少),利用該演算法計算得到的熵值較低,使得資訊增益很大,而這些特徵對最終的分類的結果沒有太大影響,我們卻根據以上演算法將這些特徵定為根節點,顯然這樣做是不合理的。

資訊增益率(解決了id3問題,考慮自身熵),對於稀疏特徵的自身熵值一般都比較大,通過資訊增益/自身熵,會發現稀疏特徵的資訊增益率極低。

還有其他演算法例如:

cart使用gini係數來當做衡量標準,gini係數的表示式:

概率越接近1,gini係數越小,和熵的衡量標準類似,計算方式不相同。

2.2 測試階段:

根據構造出來的樹模型從上到下去走一遍就好了

3,決策樹剪枝策略

想象一下,如果樹足夠大,每乙個資料就都可以分配到每個葉子節點上了(理論上可以完全分得開資料)。但是這樣的決策樹過擬合(在訓練集上表現很好,但在測試集上表現很差)風險很大,泛化能力弱。

剪枝策略有預剪枝,後剪枝兩種

3.1 預剪枝:邊建立決策樹邊進行剪枝的操作(很實用,易實現),限制深度(特徵數),葉子節點個數,葉子節點樣本數,資訊增益量等抑制樹結構的伸展。

後剪枝:當建立完決策樹後來進行剪枝操作,通過一定的衡量標準(葉子節點越多,損失c越大):

損失c=(gini係數*葉子節點中的樣本數)的累和,t代表葉子節點數。

決策樹演算法簡介

決策樹 decision tree 一 背景知識 符號 xi的資訊量 l xi log2p xi 熵 h p xi log2p xi 資訊增益 特徵 a對訓練資料集 d的資訊增益 g d,a h d h d a 其中,定義集合 d的經驗熵 h d 與特徵a 給定條件下 d的經驗條件熵 h d a 之...

決策樹演算法簡介

決策樹思想的 非常樸素,程式設計中的條件分支結構就是if else結構,最早的決策樹就是利用這類結構分割資料的一種分類學習方法 決策樹 是一種樹形結構,其中每個內部節點表示乙個屬性上的判斷,每個分支代表乙個判斷結果的輸出,最後每個葉節點代表一種分類結果,本質是一顆由多個判斷節點組成的樹。決策樹分類原...

決策樹簡介

決策樹 decision tree 也稱為判定樹,是一類常見的機器學習方法。決策樹是基於樹結構來進行決策的,這恰是人類在面臨決策問題時一種很自然的處理機制。決策過程中提出的每個判定問題都是對某個屬性的 測試 每個測試的結果或是匯出最終結論,或是匯出進一步的判定問題,其考慮範圍是在上次決策結果的限定範...