1. 程式人生 > >機器學習筆記:決策樹(ID3,C4.5,CART)

機器學習筆記:決策樹(ID3,C4.5,CART)

學習資料:《統計學習方法》,《機器學習》(周志華),韓小陽ppt,鄒博ppt。

決策樹是一種樹形結構,對例項進行分類和迴歸的,下面主要說的是用來進行分類,最後說道CART的時候也會說到決策樹用到迴歸問題上。

1、決策樹模型與學習

先給出分類決策樹模型定義:是一種對例項資料進行分類的樹形結構,由節點和有向邊組成,而節點分為內部節點和葉節點。內部節點為特徵,葉子節點為分類結果,有向邊則根據特徵將資料集進行劃分。

舉個媽媽為女兒相親的例子。媽媽收集了很多相親的例子,女方會根據男方的特徵判斷會不會去相親,最後得到了下面的關於是否去相親的模型(該例子和圖來自與韓小陽製作的ppt)。

在這裡插入圖片描述

上面的樹即為分類決策樹模型,而媽媽根據以往的很多資料然後學習得到該模型的過程則是分類決策樹的學習過程,而上圖左側的談話則是根據已有的樹模型對新資料進行預測。好了,現在給出標準的決策樹的學習定義。

決策樹學習:假設給定訓練資料集

D = { ( x

1 , y 1 ) , ( x 2
, y 2 ) , . . . , ( x n , y n ) } D=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\}

其中 x i = ( x i 1 , x i 2 , . . . , x i m ) x_i=(x_i^1,x_i^2,...,x_i^m) 為輸入例項(特徵向量,共m個特徵), y = { 1 , 2 ,   , K } y=\{1,2,\cdots,K\} 表示類別。學習的目標就是根據給定的資料集構建一個決策樹模型,使得能夠對例項進行正確的分類。

注意:得到的樹模型會有無窮多個,學習演算法得到的不是最優的而是次優的(選取最優的是個NP問題)。

決策樹學習演算法有3部分構成:

  1. 特徵選擇
  2. 決策樹的生成
  3. 決策樹的剪枝

下面來分別講述

2、特徵選擇

假設現在有銀行貸款申請樣本資料集,我們需要根據該資料集進行決策樹的學習從而得到分類決策樹模型。

在這裡插入圖片描述

通常的做法是:從根節點開始,選一個最優的特徵作為根節點,根據特徵值的不同對資料集進行分割,對分割產生的子節點,再遞迴的進行分割,直到所有例項都屬於同一類別,或者沒有特徵可選了那就把當前節點作為葉節點。

圖中可以看到有4個特徵,那麼把哪個特徵作為根節點,然後來進行劃分呢?答案是使用資訊增益最大的那個特徵。下面介紹資訊增益

2.1、資訊增益

為了便於說明,先給出熵和條件熵的定義

:隨機變數不確定性的表現。設X是一個取值個數有限的隨機變數,概率分佈為 P ( X = x i ) = p i , i = 1 , 2 , , n P(X=x_i)=p_i,i=1,2,\dots,n 。那麼隨機變數X的是熵定義為

H ( X ) = i = 1 n p i l o g p i H(X) = -\sum\limits_{i=1}^{n}p_i\cdot log{p_{i}}

通常底數為2或者 e e ,式子中可以發現結果與X無關,僅與X的分佈有關,所以表示成 H ( p ) = i = 1 n p i l o g p i H(p)=-\sum\limits_{i=1}^{n}p_i\cdot log{p_{i}} ,顯然是個大於等於0的數。值越大那麼不確定性越大,相反,如果結果是0那麼結果就是確定的。舉個例子,假設X是0-1分佈, P ( X = 0 ) = p P(X=0)=p ,那麼熵 H ( p ) = ( p l o g p + ( 1 p ) l o g ( 1 p ) ) H(p)=-(plogp+(1-p)log(1-p)) 。當 p = 0 p=0 時, H ( p ) = 0 H(p)=0 也就是結果是確定的,直觀上確實是這樣,因為0事件不可能發生,結果只會是1事件。下面給出 H ( P ) H(P) 隨著 p p 的變化圖。

在這裡插入圖片描述

p = 0.5 p=0.5 的時候熵最大,直觀上容易理解,說明0,1等可能發生,結果是最難預測的。

設隨機變數(X,Y),聯合概率分佈為
P ( X = x i , Y = y j ) = p i j , i = 1 , 2 , , n ; j = 1 , 2 , , m P(X=x_i,Y=y_j)=p_{ij},i=1,2,\dots,n;j=1,2,\dots,m
給出條件熵 H ( Y X ) H(Y|X) 定義如下

條件熵:條件熵 H ( Y X ) H(Y|X) 表示在已知隨機變數 X X 的條件下,隨機變數 Y Y 的不確定性。定義為 X X 給定條件下 Y Y 的條件概率分佈的熵對X的數學期望。

H ( Y X ) = i = 1 n p i H ( Y X = x i ) H(Y|X)=\sum\limits_{i=1}^{n}p_i\cdot H(Y|X=x_i)

其中 p i = P ( X = x i ) , i = 1 , 2 , . . . , n p_i=P(X=x_i),i=1,2,...,n

資訊增益表示得知特徵X的資訊而使得類Y的資訊的不確定性減少的程度。

資訊增益:特徵A對訓練資料集D的資訊增益表示為 g ( D , A ) g(D,A) ,定義為集合D的經驗熵 H ( D ) H(D) 與特徵A給定條件下D的條件熵 H ( D A ) H(D|A) 之差,也可叫做互資訊。

g ( D , A ) = H ( D ) H ( D A ) g(D,A)=H(D)-H(D|A)

相關推薦

機器學習筆記決策ID3,C4.5,CART

學習資料:《統計學習方法》,《機器學習》(周志華),韓小陽ppt,鄒博ppt。 決策樹是一種樹形結構,對例項進行分類和迴歸的,下面主要說的是用來進行分類,最後說道CART的時候也會說到決策樹用到迴歸問題上。 1、決策樹模型與學習 先給出分類決策樹模型定義:是一種對例項資料進行

機器學習決策ID3,C4.5,CART演算法描述

文章目錄 概念理解 熵: 條件熵: 資訊增益,互資訊: 資訊增益比 基尼指數 ID3演算法描述 C4.5演算法描述 CART (Classification and Regression Tree

機器學習決策Decision Tree

Decision Tree 1. 決策樹 決策樹是機器學習中最接近人類思考問題的過程的一種演算法。通過若干個節點,對特徵進行提問並分類(可以是二分類也可以使多分類),直至最後生成

機器學習爬大樹之決策ID3,C4.5

     自己自學機器學習的相關知識,過了一遍西瓜書後準備再刷一遍,後來在看別人打比賽的程式碼時多次用到XGBoost,lightGBM,遂痛下決心認真學習機器學習關於樹的知識,自己學習的初步流程圖為: 決策樹(ID3,C4.5)---->CART-----&

決策ID3 C4,5 減枝 CART演算法以及Python實現

演算法簡述 在《統計學習方法》中,作者的if-then的描述,簡單一下子讓人理解了決策樹的基本概念。 決策樹,就是一個if-then的過程。 本文主要學習自《統計學習方法》一書,並努力通過書中數學推導來

決策模型 ID3/C4.5/CART演算法比較

決策樹模型在監督學習中非常常見,可用於分類(二分類、多分類)和迴歸。雖然將多棵弱決策樹的Bagging、Random Forest、Boosting等tree ensembel 模型更為常見,但是“完全生長”決策樹因為其簡單直觀,具有很強的解釋性,也有廣泛的應用,而且決策樹是

機器學習決策基尼系數

try matplot 代碼實現 sci bubuko div tro 兩種 () 一、基礎理解  1)公式 k:數據集中樣本類型數量; Pi:第 i 類樣本的數量占總樣本數量的比例  2)實例計算基尼系數 3 種情況計算基尼系數: 基尼系數的性質與信息熵

機器學習筆記決策ID3

機器學習筆記之決策樹 優點:計算複雜度不高,輸出結果易於理解,對中間值的缺失不敏感,可以處理不相關特 徵資料。 缺點:可能會產生過度匹配問題。 適用資料型別:數值型和標稱型。 資訊增益 劃分資料集最大的原則是:將無序的資料變得更加有序。我們可以使用多種方法劃分資

Spark機器學習(6)決策算法

projects 信息 txt .cn import n) .com util seq 1. 決策樹基本知識 決策樹就是通過一系列規則對數據進行分類的一種算法,可以分為分類樹和回歸樹兩類,分類樹處理離散變量的,回歸樹是處理連續變量。 樣本一般都有很多個特征,有的特征對分

機器學習決策的理解

1、決策樹是一個樹結構(可以是二叉樹或非二叉樹) 決策樹是一個樹結構(可以是二叉樹或非二叉樹)其每個非葉節點表示一個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放一個類別。使用決策樹進行決策的過程就是從根節點開始,測試待分類項中相應的特徵屬性,並按照其值選擇輸出分

機器學習(十二) 決策

決策樹(Decision Tree)是在已知各種情況發生概率的 基礎上,通過構成決策樹來求取淨現值的 期望值大於等於零的概率,評價專案風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。由於這種決策分支畫成圖形很像一棵樹的枝幹,故稱決策樹。

機器學習實戰決策-隱形眼鏡型別

程式碼及資料地址 輸出結果 model: {‘tearRate’: {‘reduced’: ‘no lenses’, ‘normal’: {‘astigmatic’: {‘yes’: {‘prescript’: {‘hyper’: {‘age’: {‘presbyopic

機器學習實戰決策-是否有魚

程式碼及資料 地址 輸出結果 model: {‘no surfacing’: {0: ‘no’, 1: {‘flippers’: {0: ‘no’, 1: ‘yes’}}}} predict: [1, 1] yes 程式碼 """ @

十大機器學習演算法之決策用於信用風險

演算法原理 Decision Trees (DTs) 是一種用來 和 regression 的無參監督學習方法。其目的是建立一種模型從資料特徵中學習簡單的決策規則來預測一個目標變數的值。決策樹類似於流程圖的樹結構,分支節點表示對一個特徵進行測試,根據測試結果進行分類,樹節點

機器學習實戰——繪製決策程式碼

最近在學習Peter Harrington的《機器學習實戰》,程式碼與書中的略有不同,但可以順利執行。import matplotlib.pyplot as plt # 定義文字框和箭頭格式 decisionNode = dict(boxstyle='sawtooth',

機器學習入門之決策python實現

本次學習利用MT_Train.csv中所給的資料對MT_Test.csv中的資料進行預測,判斷客戶是否會定期存款。根據所學知識,可採用sklearn中的決策樹等方法進行程式設計。歡迎大家一起討論學習進步。 訓練集和測試集連結如下: 一. 設計思路 1.讀取訓練集和測試集檔

數據機構與算法之美學習筆記B+第48講

存儲空間 計算 數據庫 數據行 劃分數 需求 散列 動態 不可 一、解決問題的前提是定義清楚問題 通過對一些模糊需求進行假設,來限定要解決問題的範圍 根據某個值查找數據,比如 select * from use where id=1234; 根據區間值來查詢某些數據比

Python機器學習實踐決策判別汽車金融違約用戶

plot drop earch 根節點 pso name http 建議 ids 文章發布於公號【數智物語】 (ID:decision_engine),關註公號不錯過每一篇幹貨。 轉自 | 法納斯特(公眾號ID:walker398)

機器學習2Naive Bayes樸素貝葉斯

參考:https://blog.csdn.net/syoya1997/article/details/78618885貝葉斯模型的講解 貝葉斯模型 ,二分類中展開為 P(H) – 已知的先驗概率 P(H|E) – 我們想求的後驗概率,即在B事件發生後對於事件A概率的評估

機器學習筆記ID3演算法建立決策(一)

ID3演算法的核心思想 以資訊熵的下降速度作為選取測試屬性的標準,所選的測試屬性是從根節點到當前節點的路徑上尚未被考慮的具有最高資訊增益的屬性。 維基百科上對ID3演算法有比較詳細的介紹:ID3維基