機器學習之決策樹
前言
在機器學習中,決策樹是非常重要的組成部分,而且決策樹並不多見機器學習中常見到的數學公式,易於理解,本文是記錄一下自己的學習資料,以備檢視。
定義
在維基百科中,決策樹定義如下:
機器學習中,決策樹是一個預測模型;他代表的是物件屬性與物件值之間的一種對映關係。樹中每個節點表示某個物件,而每個分叉路徑則代表的某個可能的屬性值,而每個葉結點則對應從根節點到該葉節點所經歷的路徑所表示的物件的值。決策樹僅有單一輸出,若欲有複數輸出,可以建立獨立的決策樹以處理不同輸出。 資料探勘中決策樹是一種經常要用到的技術,可以用於分析資料,同樣也可以用來作預測。
從資料產生決策樹的機器學習技術叫做決策樹學習,通俗說就是決策樹。
在《資料科學入門》中,對決策樹有以下描述
決策樹通過樹狀結構來表示各種可能的決策路徑(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
參考資料
《機器學習實戰》第三章
《機器學習》第四章
《資料科學入門》第十七章
相關文章
- 機器學習:決策樹機器學習
- 機器學習之決策樹演算法機器學習演算法
- 機器學習——決策樹模型機器學習模型
- Python機器學習:決策樹001什麼是決策樹Python機器學習
- 機器學習之 決策樹(Decision Tree)python實現機器學習Python
- 機器學習之使用sklearn構造決策樹模型機器學習模型
- 機器學習經典演算法之決策樹機器學習演算法
- 機器學習之決策樹原理和sklearn實踐機器學習
- 【機器學習】--決策樹和隨機森林機器學習隨機森林
- 機器學習筆記(四)決策樹機器學習筆記
- 機器學習Sklearn系列:(三)決策樹機器學習
- 機器學習|決策樹-sklearn實現機器學習
- 【Python機器學習實戰】決策樹和整合學習(二)——決策樹的實現Python機器學習
- 機器學習之決策樹在sklearn中的實現機器學習
- 機器學習之決策樹ID3(python實現)機器學習Python
- 機器學習 Day 9 | 決策樹基礎機器學習
- 機器學習——決策樹模型:Python實現機器學習模型Python
- 人工智慧之機器學習基礎——決策樹(Decision Tree)人工智慧機器學習
- 圖解機器學習 | 決策樹模型詳解圖解機器學習模型
- 【Python機器學習實戰】決策樹和整合學習(一)Python機器學習
- 機器學習之決策樹詳細講解及程式碼講解機器學習
- 決策樹在機器學習的理論學習與實踐機器學習
- 【Python機器學習實戰】決策樹與整合學習(三)——整合學習(1)Python機器學習
- 《機器學習Python實現_09_02_決策樹_CART》機器學習Python
- 【Python機器學習實戰】決策樹與整合學習(四)——整合學習(2)GBDTPython機器學習
- 決策樹學習總結
- 機器學習——線性迴歸-KNN-決策樹(例項)機器學習KNN
- 機器學習 - 決策樹:技術全解與案例實戰機器學習
- 機器學習西瓜書02:第四章,決策樹。機器學習
- 【機器學習】實現層面 決策樹 並用graphviz視覺化樹機器學習視覺化
- 通用機器學習演算法:線性迴歸+決策樹+Xgboost機器學習演算法
- 機器學習之-決策樹演算法【人工智慧工程師--AI轉型必修課】機器學習演算法人工智慧工程師AI
- 機器學習西瓜書吃瓜筆記之(二)決策樹分類 附一鍵生成決策樹&視覺化python程式碼實現機器學習筆記視覺化Python
- 【Python機器學習實戰】決策樹與整合學習(六)——整合學習(4)XGBoost原理篇Python機器學習
- 深入淺出學習決策樹(二)
- 深入淺出學習決策樹(一)
- 機器學習實戰(三)決策樹ID3:樹的構建和簡單分類機器學習
- 我用白話+案例給你講講機器學習中的決策樹機器學習