算法模型——决策树
決策樹屬于監督學習,是一種預測模型。
1. 概念
決策樹(Decision Tree)是在已知各種情況發生概率的基礎上,通過構成決策樹來求取凈現值的期望值大于等于零的概率,評價項目風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。
決策樹是一種樹形結構,其中每個內部節點表示一個屬性上的測試,每個分支代表一個測試輸出,每個葉節點代表一種類別。
樹模型和線性模型有什么區別呢?最重要的是,樹形模型是一個一個特征進行處理,線性模型是所有特征給予權重相加得到一個新的值。
決策樹與邏輯回歸的分類區別也在于此,邏輯回歸是將所有特征變換為概率后,通過大于某一概率閾值的劃分為一類,小于某一概率閾值的為另一類;而決策樹是對每一個特征做一個劃分。另外邏輯回歸只能找到線性分割(輸入特征x與logit之間是線性的,除非對x進行多維映射),而決策樹可以找到非線性分割。
而樹形模型更加接近人的思維方式,可以產生可視化的分類規則,產生的模型具有可解釋性(可以抽取規則)。樹模型擬合出來的函數其實是分區間的階梯函數。
決策樹學習:采用自頂向下的遞歸的方法,基本思想是以信息熵為度量構造一棵熵值下降最快的樹,到葉子節點處熵值為0(葉節點中的實例都屬于一類)。
2. 基礎理論
1. 信息熵
信息熵H(X)、聯合熵H(X,Y)、條件熵H(X|Y)、互信息I(X,Y)之間關系如圖示:
2. 算法思想
基本思想是以信息熵為度量構造一棵熵值下降最快的樹,到葉子節點處的熵值為零,此時每個葉子節點中的實例都屬于同一類。例根據多個屬性來判斷瓜屬于好瓜還是壞瓜的結論,圖示如下:
3. 決策樹 ID3算法
使用信息增益作為不純度,核心思想是以信息增益度量屬性選擇,選擇分裂后的信息增益最大的,也就是熵在分裂前后差值最大的屬性進行分裂。
根據log(x)的函數可知,p值越小,熵越大,所以當分組完全是會出現p=0此時熵最大,概率為0說明已經最純了。
表中S、M和L分別表示小、中和大。
設L、F、H和R表示日志密度、好友密度、是否使用真實頭像和賬號是否真實,試用ID3算法構造決策樹。
解:設D為10個樣本集,其中決策屬性(真實賬戶/R)有7個YES、3個NO。決策屬性信息熵為:
如果按照日志密度來分類:計算日志密度熵值,日志密度分為3類S,L,M
其中L分類,樣本總數10,L類3,L類中假賬號0 真實賬號3
所以:
所以gain(L) = 0.876-0.603 = 0.273
同理計算好友密度信息增益:
計算真實頭像的信息增益:
因為好友密度(F)具有最大的信息增益(好友密度信息熵最小,最易分割),所以第一次分裂選擇好友密度F為分裂屬性(實際中如果特征非常多是隨機選擇一些特征然后計算后選取的不能遍歷所有情況),分裂后的結果如下:
圖中:按好友密度(F)分割樹,水平M和L為單一水平決策屬性分支(樹葉),沒有必要繼續分割。水平S包含決策屬性的不同水平,應該繼續分割。待分割決策信息表為:
此時,設D為4個樣本集,其中決策屬性(真實賬戶/R)有1個YES、3個NO。決策屬性信息熵為:
日志密度屬性期望信息熵為:
真實頭像屬性期望信息熵為:
因為日志密度(L)具有最大的信息增益,所以第二次分裂選擇日志密度(L)為分裂屬性,分裂后的結果如下圖表示:
圖中,日志密度為M時,無法做出判斷、也無法繼續進行分裂。至此,決策樹構建完畢。
設某人在SNS社區中的好友密度為L或M,無論其它屬性水平取值如何,均可判定為是真實賬戶;如果某人在SNS社區中的好友密度為S、日志密度也為S,可判定為是虛假賬戶;如果某人在SNS社區中的好友密度為S、日志密度為M,應根據真實頭像信息做出判斷,由于樣本過少,無法繼續進行。
4. 決策樹 C4.5算法
使用信息增益率作為不純度。
ID3算法是決策樹的一個經典的構造算法,但ID3算法也存在一些問題,比較突出的缺陷是信息增益的計算依賴于特征水平較多的特征,而屬性取值最多的屬性并不一定最優。例如,投擲一枚分幣和一個色子這兩個隨機試驗,所有可能的期望信息熵為:
通過信息熵的定義可知,在給定特征水平數條件下,各水平發生概率相等(如擲篩子6個數字發生的概率都為1/6。期望信息熵最大。所以,當決策信息中某個變量特征水平較多時,ID3算法按信息增益指標往往會選擇該變量或屬性做為分割節點。
I、“分裂信息”公式
C4.5算法首先定義了“分裂信息”,其定義可以表示成:
II、增益率
III、分裂信息和增益率計算實例
在ID3算法案例中(SNS社區中不真實賬號檢測),決策屬性信息熵為:
把決策屬性替換成其它屬性,即為各屬性分裂信息熵。
日志密度分裂信息:
好友密度分裂信息:
真實頭像分裂信息:
由前面ID3算法已知,
各屬性增益率為,
由上述計算結果可知“好友密度”在屬性中具有最大的信息增益比,取“好友密度”為分割屬性,引出一個分枝,樣本按此劃分。對引出的每一個分枝再用此分類法進行分類,再引出分枝。
某屬性的信息增益除以分裂信息,消除了屬性水平數量多少的影響,使得分裂屬性的選擇更加合理。
5. 分類回歸樹(CART)模型
CART分類樹算法使用基尼系數函數作為不純度,基尼系數越小,則不純度越低,特征越好。
在分類問題中,假設有K個類別,第k個類別的概率為p_{k} ,則基尼系數為:
對于給定的樣本D(以下“D”處均為錯誤,應為R),假設有K個類別,第k個類別的數量為C_{k} ,則樣本的基尼系數為:
特別的,對于樣本D,如果根據特征A的某個值a,把D分成D1和D2兩部分,則在特征A的條件下,D的基尼系數為:
回到上面的例子:
同理得:
因為L具有最小的基尼系數,所以第一次分裂選擇L為分裂屬性。
再遞歸使用這個方法計算子節點的分裂屬性,最終就可以得到整個決策樹。
6. 評價
1. 對比
-
決策樹與邏輯回歸
-
決策樹三種方法對比
ID3 傾向于選擇水平數量較多的變量,可能導致訓練得到一個龐大且深度淺的樹;另外輸入變量必須是分類變量(連續變量必須離散化);最后無法處理空值。
C4.5 選擇了信息增益率替代信息增益。
CART 以基尼系數替代熵,最小化不純度而不是最大化信息增益。
2. 優缺點
優點
- 易于理解和實現
- 數據準備簡單,能夠同時處理數據型和常規型屬性,在相對短的時間內能夠對大型數據源做出可行且效果良好的結果
- 易于通過靜態測試來對模型進行評測,可以測定模型可信度;如果給定一個觀察的模型,那么根據所產生的決策樹很容易推出相應的邏輯表達式
缺點
- 對連續性的字段比較難預測
- 對有時間順序的數據,需要很多預處理的工作
- 當類別太多時,錯誤可能就會增加的比較快
- 一般的算法分類的時候,只是根據一個字段來分類
參考原文鏈接
https://www.jianshu.com/p/d0a6fabd796c
https://www.jianshu.com/p/b7d71478370d
總結
- 上一篇: 广工Anyview数据结构习题
- 下一篇: 腾讯无线副总李颖:腾讯QQ游戏无线平台将