機器學習 Day 9 | 決策樹基礎
機器學習第九天 決策樹概念
決策樹概述
決策樹(Decision Tree)演算法是一種基本的分類與迴歸方法,是最經常使用的資料探勘演算法之一。這裡只討論用於分類的決策樹。
決策樹模型呈樹形結構,在分類問題中,表示基於特徵對例項進行分類的過程。它可以認為是if-then規則的集合,也可以認為是定義在特徵空間與類空間上的條件概率分佈。
決策樹學習通常包括3個步驟:特徵選擇、決策樹的生成和決策樹的修建。
決策樹 場景
一個叫做“二十個問題”的遊戲,遊戲的規則很簡單:參與遊戲的一方在腦海中想某個事物,其他參與者向他提問,只允許提20個問題,問題的答案也只能用對或錯回答。問問題的人通過推斷分解,逐步縮小待猜測事物的範圍,最後得到遊戲的答案。
一個郵件分類系統,大致工作流程如下:
首先檢測傳送郵件域名地址。如果地址為myEmployer.com,則將其放在分類“無聊時需要閱讀的郵件”中。如果郵件不是來自這個域名,則檢測郵件內容裡是否包含單詞“曲棍球”,如果包含則將郵件歸類到“需要及時處理的朋友郵件”,如果不包含則將郵件歸類到“無需閱讀的垃圾郵件”。
決策樹的定義:
分類決策樹模型是一種描述對例項進行分類的樹形結構。決策樹由結點(node)和有向邊(directed edge)組成。結點有兩種型別:內部結點(internal node)和葉結點(leaf node)。內部結點表示一個特徵或屬性(features),葉結點表示一個類(labels)。
用決策樹對需要測試的例項進行分類:從根節點開始,對例項的某一特徵進行測試,根據測試結果,將例項分配到其子結點;這時,每一個子結點對應著該特徵的一個取值。如此遞迴的對例項進行測試並分配,直至達到葉結點。最後將例項分配到葉結點的類中。
決策樹 原理
決策樹 須知概念
資訊熵 & 資訊增益
熵(entropy): 熵指的是體系的混亂的程度,在不同的學科中也有引申出的更為具體的定義,是各領域十分重要的參量。
資訊理論(information theory)中的熵(夏農熵): 是一種資訊的度量方式,表示資訊的混亂程度,也就是說:資訊越有序,資訊熵越低。例如:火柴有序放在火柴盒裡,熵值很低,相反,熵值很高。
資訊增益(information gain): 在劃分資料集前後資訊發生的變化稱為資訊增益。
決策樹 工作原理
如何構造一個決策樹?
我們使用 createBranch() 方法,虛擬碼如下所示:
def createBranch():
'''
此處運用了迭代的思想。 感興趣可以搜尋 迭代 recursion, 甚至是 dynamic programing。
'''
檢測資料集中的所有資料的分類標籤是否相同:
If so return 類標籤
Else:
尋找劃分資料集的最好特徵(劃分之後資訊熵最小,也就是資訊增益最大的特徵)
劃分資料集
建立分支節點
for 每個劃分的子集
呼叫函式 createBranch (建立分支的函式)並增加返回結果到分支節點中
return 分支節點
決策樹開發流程
收集資料:可以使用任何方法。
準備資料:樹構造演算法 (這裡使用的是ID3演算法,只適用於標稱型資料,這就是為什麼數值型資料必須離散化。 還有其他的樹構造演算法,比如CART)
分析資料:可以使用任何方法,構造樹完成之後,我們應該檢查圖形是否符合預期。
訓練演算法:構造樹的資料結構。
測試演算法:使用訓練好的樹計算錯誤率。
使用演算法:此步驟可以適用於任何監督學習任務,而使用決策樹可以更好地理解資料的內在含義。
決策樹 演算法特點
優點:計算複雜度不高,輸出結果易於理解,資料有缺失也能跑,可以處理不相關特徵。
缺點:容易過擬合。
適用資料型別:數值型和標稱型。
明天準備對用一個簡單案例實現一下決策樹
相關文章
- 機器學習:決策樹機器學習
- 人工智慧之機器學習基礎——決策樹(Decision Tree)人工智慧機器學習
- 機器學習——決策樹模型機器學習模型
- 機器學習之決策樹機器學習
- Python機器學習:決策樹001什麼是決策樹Python機器學習
- 【機器學習】--決策樹和隨機森林機器學習隨機森林
- 機器學習筆記(四)決策樹機器學習筆記
- 機器學習Sklearn系列:(三)決策樹機器學習
- 機器學習|決策樹-sklearn實現機器學習
- 【Python機器學習實戰】決策樹和整合學習(二)——決策樹的實現Python機器學習
- 機器學習之決策樹演算法機器學習演算法
- 機器學習——決策樹模型:Python實現機器學習模型Python
- 機器學習基礎04DAY機器學習
- 機器學習基礎09DAY機器學習
- 機器學習基礎05DAY機器學習
- 圖解機器學習 | 決策樹模型詳解圖解機器學習模型
- 【Python機器學習實戰】決策樹和整合學習(一)Python機器學習
- 機器學習之 決策樹(Decision Tree)python實現機器學習Python
- 機器學習之使用sklearn構造決策樹模型機器學習模型
- 機器學習經典演算法之決策樹機器學習演算法
- 機器學習之決策樹原理和sklearn實踐機器學習
- 決策樹在機器學習的理論學習與實踐機器學習
- 【Python機器學習實戰】決策樹與整合學習(三)——整合學習(1)Python機器學習
- 機器學習之決策樹在sklearn中的實現機器學習
- 機器學習之決策樹ID3(python實現)機器學習Python
- 《機器學習Python實現_09_02_決策樹_CART》機器學習Python
- 【Python機器學習實戰】決策樹與整合學習(四)——整合學習(2)GBDTPython機器學習
- 決策樹學習總結
- 機器學習——線性迴歸-KNN-決策樹(例項)機器學習KNN
- 機器學習 - 決策樹:技術全解與案例實戰機器學習
- 機器學習西瓜書02:第四章,決策樹。機器學習
- 【機器學習】實現層面 決策樹 並用graphviz視覺化樹機器學習視覺化
- 通用機器學習演算法:線性迴歸+決策樹+Xgboost機器學習演算法
- 基於C#的機器學習--我應該接受這份工作嗎-使用決策樹C#機器學習
- 【Python機器學習實戰】決策樹與整合學習(六)——整合學習(4)XGBoost原理篇Python機器學習
- 機器學習之決策樹詳細講解及程式碼講解機器學習
- 深入淺出學習決策樹(二)
- 深入淺出學習決策樹(一)