1. 程式人生 > >決策樹之ID3、C4.5、C5.0

決策樹之ID3、C4.5、C5.0


2011年獲得了資料探勘領域最高榮譽獎KDD創新獎,昆蘭發明了著名的決策樹學習演算法ID3、C4.5,其個人主頁公佈了C4.5的C程式碼。

—————————————————————————————————————————————————————————————————————————————

決策樹之ID3,說一個例子,就會明白,拿 Tom M .mitchen 的《Machine Learing》第三章中的例子。


我們先解釋一下這張表,表中有14條例項資料,就是我們的訓練資料,其中 Outlook,Temperature,Humidity ,Wind 稱作條件屬性PlayTennis 稱作是決策屬性

(標籤)

每一個屬性都有各自的值記做:Value(Outlook)={Sunny,OverCast,Rain},Value(Temperature)={Hot,Mild,Cool},Value(Humidity)={High,Normal},Value(Wind)={Strong,Weak},Value(PlayTennis)={NO,Yes}。

第一個重要的概念:Entropy。

我們數一下  決策屬性PlayTennis,一共有兩個類別:Yes,No。Yes的例項數是 9,No的例項數是 5。計算決策屬性的Entropy(熵):

,

計算結果為:0.940286

這裡的決策屬性S的值只有兩個值(Yes,No),當然可以有多個值(s1,s2,s3,...,sk),這些決策屬性的值的概率分別為:p1,p2,p3,...,pk所以決策屬性的Entroy的計算公式:


第二個重要的概念:information gain(資訊增益)

我們只Outlook條件屬性舉例,其他的屬性一樣:

Value(Outlook)={Sunny,OverCast,Rain}:

Outlook是sunny的例項數為5(其中Yes的個數為2,No的個數為3),佔總的例項數為5/14,那麼針對sunny的Entropy,


計算結果為:0.97095

Outlook是OverCast的例項數為4(其中Yes的個數為4,No的個數為0),佔總的例項數為4/14,那麼針對Overcast的Entropy,


計算結果為:0

Outlook是Rain的例項數為5(其中Yes的個數為3,No的個數為2),佔總的例項數為5/14,那麼針對Rain的Entropy,


計算結果為:0.97095

那麼最後針對Outlook條件屬性的information gain為:


計算結果為:0.24675

所以針對某一條件屬性的information gain為:

       

那麼其他三個條件屬性Temperature、Humidity、Wind的資訊增益為:




我們看到Outlook的資訊增益是最大的,所以作為決策樹的一個根節點。即:


然後,從Outlook下面出來三個樹枝,最左邊的Sunny,我們從Outlook是Sunny的例項資料中,找到資訊增益最大的那一個,依次類推。

—————————————————————————————————————————————————————————————————————————————

決策樹之C4.5

上面討論的決策樹的ID3演算法,屬性只能是列舉型的(離散的),當然屬性值可以是連續的數值型,但是需要對這些資料進行預處理,變為離散型的,才可以運用ID3演算法。

所以Ross Quinlan又提出了C4.5演算法,能夠處理屬性是連續型的。而且,在C4.5演算法中,又提出了兩個新的概念:

分離資訊(Split Information)和資訊增益率(Information gain ratio)

首先,給出分離資訊的計算方法,數學符號表達式為:

解釋為:資料集通過條件屬性A的分離資訊。上面一個例子,資料集通過Outlook這個條件屬性的分離資訊,Outlook有三個屬性值分別為:Sunny,Overcast,Rain,它們各佔5,4,5,所以:


再次,給出資訊增益率的公式:

上面這個例子如:資料集S針對Outlook的資訊增益率,

分子和分母這兩個值都已經求出來,選擇資訊增益率最大的那個屬性,作為節點。

—————————————————————————————————————————————————————————————————————————————

決策樹之C5.0

這是決策樹C4.5的商用演算法,在記憶體管理等方面,給出了改進。比如在商用軟體SPSS中,就有該演算法。

___________________________________________________________________________________________________________________________________

注意上述三個演算法只能做分類,不能做迴歸,下一篇博文CART類似於C4.5,但可以做迴歸。

開源的軟體:

java語言中最著名的的Weka,對ID3,C4.5都有實現。

相關推薦

R_針對churn資料用id3cartC4.5C5.0建立決策模型進行判斷哪種模型更合適

      data(churn)匯入自帶的訓練集churnTrain和測試集churnTest   用id3、cart、C4.5和C5.0建立決策樹模型,並用交叉矩陣評估模型,針對churn資料,哪種模型更合適     決策樹模型 ID3/C4.5/CART演算法比較   傳送門

決策演算法ID3C4.5, CART

決策樹是機器學習中非常經典的一類學習演算法,它通過樹的結構,利用樹的分支來表示對樣本特徵的判斷規則,從樹的葉子節點所包含的訓練樣本中得到預測值。決策樹如何生成決定了所能處理的資料型別和預測效能。主要的決策樹演算法包括ID3,C4.5, CART等。 1,ID3 ID3是由 

【面試考】【入門】決策演算法ID3C4.5和CART

關於決策樹的purity的計算方法可以參考: [決策樹purity/基尼係數/資訊增益 Decision Trees](https://www.cnblogs.com/PythonLearner/p/12940067.html) 如果有不懂得可以私信我,我給你講。 ## ID3 用下面的例子來理解這個演算法:

決策ID3C4.5C5.0

2011年獲得了資料探勘領域最高榮譽獎KDD創新獎,昆蘭發明了著名的決策樹學習演算法ID3、C4.5,其個人主頁公佈了C4.5的C程式碼。—————————————————————————————————————————————————————————————————————

決策ID3C4.5CART隨機森林的原理與例子

(寫在前面:作者是一名剛入學的模式識別專業的碩士生,第一次寫部落格,有錯誤的地方還請大家多多指教評論,一起交流呀~) 決策樹的基本流程 ①劃分特徵的選擇(常見的選擇方法有:資訊增益、增益率、基尼指數,下文會詳細介紹) ②劃分停止準則:停止準則表示該節點不再劃分

決策的進化(ID3C4.5CARTGBDTRFDARTlambdaMARTXGBoostlightGBM)

pipeline 在資料探勘領域中,決策樹是對資料進行建模的一種很有效的手段。當資料集被清洗好後,資料集就是樣本的集合,每一個樣本都是有一樣多的屬性,但屬性值可能不同(也有可能不存在即屬性值缺失)。每一個樣本,分為屬性(也可稱為特徵)和label兩部分,我們運用決策樹處理資

決策ID3C4.5CART)

顧名思義,決策樹是基於樹結構進行決策。 1.ID3決策樹 以最大化資訊增益為準則來選擇劃分屬性。 假設離散屬性a上有V個可能的取值{a1,...,aV}\{a^1,...,a^V\}{a1,...,aV},若使用a對樣本集D進行劃分,則會產生V個分支節點。其中第

決策ID3C4.5CART演算法:資訊熵,區別,剪枝理論總結

決策樹演算法中的ID3、c4.5、CART演算法,記錄如下:     決策樹演算法:顧名思義,以二分類問題為例,即利用自變數構造一顆二叉樹,將目標變數區分出來,所有決策樹演算法的關鍵點如下:     1.分裂屬性的選擇。即選擇哪個自變數作為樹叉,也就是在n個自變數中,優先選

轉載]決策ID3C4.5CART科普

轉載地址:http://blog.csdn.net/zhangping1987/article/details/23021381 2011年獲得了資料探勘領域最高榮譽獎KDD創新獎,昆蘭發明了著名的決策樹學習演算法ID3、C4.5,其個人主頁公佈了C4.5的C

python機器學習案例系列教程——決策ID3C4.5CART)

決策樹簡介 決策樹算是最好理解的分類器了。決策樹就是一個多層if-else函式,就是對物件屬性進行多層if-else判斷,獲取目標屬性(類標籤)的類別。由於只使用if-else對特徵屬性進行判斷,所以一般特徵屬性為離散值,即使為連續值也會先進行區間離散

決策(上)-ID3C4.5CART

參考資料(要是對於本文的理解不夠透徹,必須將以下部落格認知閱讀,方可全面瞭解決策樹): 1.https://zhuanlan.zhihu.com/p/85731206 2.https://zhuanlan.zhihu.com/p/29980400 3.https://github.com/Vay-keen/M

決策分類演算法ID3C4.5算法系列

一、引言 在最開始的時候,我本來準備學習的是C4.5演算法,後來發現C4.5演算法的核心還是ID3演算法,所以又輾轉回到學習ID3演算法了,因為C4.5是他的一個改進。至於是什麼改進,在後面的描述中我會提到。 二、ID3演算法 ID3演算法是一種分類決策樹演算法。他通過一系

決策ID3算法

dex 信息增益 lan 進入 根據 keys one 回顧 改進 一、決策樹之ID3算法簡述   1976年-1986年,J.R.Quinlan給出ID3算法原型並進行了總結,確定了決策樹學習的理論。這可以看做是決策樹算法的起點。1993,Quinlan將ID3算法改進

決策ID3演算法實現(python) [置頂] 怒寫一個digit classification(不斷更新中)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

決策ID3演算法

今天,我來講解的是決策樹。對於決策樹來說,主要有兩種演算法:ID3演算法和C4.5演算法。C4.5演算法是 對ID3演算法的改進。今天主要先講ID3演算法,之後會講C4.5演算法和隨機森林等。 Contents 1. 決策樹的基本認識 2. ID3演算法介紹

決策ID3演算法實現(python)

最近開始學習machine learning方面的內容,大致瀏覽了一遍《machine learning in action》一書,大概瞭解了一些常用的演算法如knn,svm等具體式幹啥的。 在kaggle上看到一個練手的專案:digit classification,又有良好的資料,於是打算用這個

【Machine Learning·機器學習】決策ID3演算法(Iterative Dichotomiser 3)

目錄 1、什麼是決策樹 2、如何構造一棵決策樹? 2.1、基本方法 2.2、評價標準是什麼/如何量化評價一個特徵的好壞? 2.3、資訊熵、資訊增益的計算 2.4、決策樹構建方法

決策ID3CARTC4.5之間的區別

歷史回顧:1984年提出的cart,1986年提出的ID3,1993年提出的c4.5 理論上總的來說, C4.5是基於ID3優化後產出的演算法,主要優化了關於節點分支的計算方式,優化後解決了ID3分支過程中總喜歡偏向取值較多的屬性 ID3是資訊增益分支: 而CAR

機器學習 - 決策(下)- CART 以及與 ID3C4.5的比較

機器學習 - 決策樹(下)- CART 以及與 ID3、C4.5的比較 CART 迴歸樹 分類樹 剪枝 剪枝 選擇 決策樹特點總結 ID3,C4.

機器學習 - 決策(中)- ID3C4.5 以及剪枝

機器學習 - 決策樹(中)- ID3、C4.5 以及剪枝 決策樹簡述 決策樹過程 ID3 C4.5 過擬合 剪枝定義 剪枝過程