前言
在機器學習中,決策樹是非常重要的組成部分,而且決策樹並不多見機器學習中常見到的數學公式,易於理解,本文是記錄一下自己的學習資料,以備查看。
定義
在維基百科中,決策樹定義如下:
機器學習中,決策樹是一個預測模型;他代表的是對象屬性與對象值之間的一種映射關係。樹中每個節點表示某個對象,而每個分叉路徑則代表的某個可能的屬性值,而每個葉結點則對應從根節點到該葉節點所經歷的路徑所表示的對象的值。決策樹僅有單一輸出,若欲有複數輸出,可以建立獨立的決策樹以處理不同輸出。 數據挖掘中決策樹是一種經常要用到的技術,可以用於分析數據,同樣也可以用來作預測。
從數據產生決策樹的機器學習技術叫做決策樹學習,通俗說就是決策樹。
在《數據科學入門》中,對決策樹有以下描述
決策樹通過樹狀結構來表示各種可能的決策路徑(decision path),以及每個路徑的結果
優缺點
優點:
計算複雜度不高,輸出結果易於理解,對中間值的缺失不敏感,可以處理不相關特徵數據。
缺點
可能會產生過度匹配問題。
適用數據類型
數值型和標稱型
資料來源
《機器學習實戰》第三章
結構
一個決策樹包含三種類型的節點:
- 決策節點:通常用矩形框來表示
- 機會節點:通常用圓圈來表示
- 終結點:通常用三角形來表示
一棵決策樹包含一個根節點,若干個內部節點和若干個葉節點;葉節點對應於決策結果,其他每個節點則對應於一個屬性測試;每個節點包含的樣本集合根據屬性測試的結果被劃分到子節點中;根節點包含樣本全集。
決策樹學習的目的是爲了產生一棵泛化能力強,即處理未見示例能力強的決策樹。
流程
在《機器學習實戰》中,對決策樹流程有以下描述
決策樹的一般流程:
- 收集數據:可以使用任何方法
- 準備數據:樹構造算法只適用於標稱型數據,因此數值型數據必須離散化
- 分析數據:可以使用任何方法,構造樹完成以後,我們應該檢查圖形是否符合預期
- 訓練算法:構造樹的數據結構
- 測試算法:使用經驗樹計算錯誤率
- 使用算法:此步驟可以適用於任何監督學習算法,而使用決策樹可以更好地理解數據的內在含義
在西瓜書中,對決策樹生成過程有以下描述:
決策樹生成過程是一個遞歸過程。有三種情況導致遞歸返回
1. 當前節點包含的樣本全屬於同一類別,無需劃分
2. 當前的屬性集爲空,或是所有樣本在所有屬性上取值相同,無法劃分
3. 當前結點包含的樣本集合爲空,不能劃分在情形2中,我們把當前節點標記爲葉節點,並將其類別設定爲該節點所包含樣本最多的類別。
在情形3中,同樣把當前節點標記爲葉節點,但將其類別設定爲其父節點所含樣本最多的類別。兩種情形之不同:
情形2是在利用當前節點的後驗分佈,而3則是把父節點的樣本分佈作爲當前節點的先驗概率
信息增益
熵
信息熵(information entropy ) 是度量樣本集合純度最常用的一種治標。
熵是整個系統的平均消息量,即:
值越小,純度越高。(純度越高,信息含量越低,包含的不確定性越低)
信息增益(information gain)
信息增益是特徵選擇中的一個重要指標,它定義爲一個特徵能夠爲分類系統帶來多少信息,帶來的信息越多,該特徵越重要。
那麼如何衡量一個特徵爲分類系統帶來的信息多少呢:
對一個特徵而言,系統有它和沒它時信息量將發生變化,而前後信息量的差值就是這個特徵給系統帶來的信息量。所謂信息量,其實就是熵。
一般而言,信息增益越大,則意味着使用a來進行劃分所獲得的“純度提升”越大。
基尼係數
Gini(D) 反映了從數據集D中隨機抽取兩個樣本,其類別標記不一致的概率。因此,Gini(D)越小,則數據集D的純度越高。
剪枝處理(pruning)
剪枝是決策樹學習算法對付“過擬合”的主要手段。分爲”預剪枝”(prepruning)和”後剪枝”(post-pruning)
“預剪枝”(prepruning)
在決策樹生成過程中,對每個結點在劃分前先進行評估,若當前節點的劃分不能帶來決策樹泛化性能的提升,則停止劃分並將當前節點標記爲葉節點。
“後剪枝”(post-pruning)
先從訓練集生成一棵完整的決策樹,然後自底向上地對非葉節點進行考察,若將該節點對應的子樹替換爲葉節點能帶來決策樹性能提升,則將該子樹替換爲葉節點。
算法
決策樹學習算法: ID3、C4.5和CART
多變量決策樹算法:OC1
參考資料
《機器學習實戰》第三章
《機器學習》第四章
《數據科學入門》第十七章