決策樹——(三)決策樹的生成與剪枝CART
前面兩篇文章分別介紹了用ID3和C4.5這兩種演算法來生成決策樹。其中ID3演算法每次用資訊增益最大的特徵來劃分資料集,C4.5演算法每次用資訊增益比最大的特徵來劃分資料集。下面介紹另外一種採用基尼指數為標準的劃分方法,CART演算法。
1. CART演算法
分類與迴歸演算法(Classification and Regression Tree,CART),即可以用於分類也可以用於迴歸,是應用廣泛的決策樹學習方法。CART假設決策樹是二叉樹,內部結點特徵的取值為“是”和“否”,左分支是取值為“是”的分支,右分支是取值為“否”的分支。這樣的決策樹等價與遞迴地二分每個特徵,將輸入空間即特徵空間劃分為有限個單元。
CART演算法由以下兩步組成:
(1)決策樹生成:基於訓練資料集生成決策樹,生成的決策樹要儘量最大;
(2)決策樹剪枝:用驗證集對已生成的樹進行剪枝並選擇最優子樹,這時用損失函式最小作為剪枝標準。
2. 分類樹
在介紹分類樹的生成演算法前,我們先介紹一下劃分標準基尼指數。
2.1 基尼指數
分類問題中,假設由
因此,對於給定的樣本集合
其中,
如果樣本集合
則在特徵
基尼指數
下圖是基尼指數,熵之半
2.2 生成演算法
輸入:訓練資料集
輸出:CART決策樹
根據訓練集,從根節點開始,遞迴地對每個結點進行一下操作,構建二叉決策樹:
(1)設結點的訓練集為
(2)在所有可能的特徵
(3)對兩個子結點遞迴的呼叫(1),(2),直到滿足停止條件;
(4)生成CART決策樹
其中,演算法停止計算的條件是:結點中的樣本點個數小於預定閾值,或樣本集的基尼指數小於預定閾值(也就是說此時樣本基本屬於同一類),或者沒有更多特徵。
同樣我們還是拿之前的資料集來走一遍生成流程:
相關推薦
決策樹——(三)決策樹的生成與剪枝CART
前面兩篇文章分別介紹了用ID3和C4.5這兩種演算法來生成決策樹。其中ID3演算法每次用資訊增益最大的特徵來劃分資料集,C4.5演算法每次用資訊增益比最大的特徵來劃分資料集。下面介紹另外一種採用基尼指數為標準的劃分方法,CART演算法。 1. CART演算法
【機器學習】決策樹(三)——生成演算法(ID3、C4.5與CRAT)
回顧 前面我們介紹了決策樹的特徵選擇,以及根據資訊增益構建決策樹。 那麼決策樹的生成又有哪些經典演算法呢?本篇將主要介紹ID3的生成演算法,然後介紹C4.5中的生成演算法。最後簡單介紹CRAT演算法。 ID3演算法 前面我們提到,一般而言,資訊增
機器學習算法整理(三)決策樹
outlook spa com width 選擇 clas .com img 衡量標準 決策樹的訓練與測試 如何切分特征(選擇節點) 衡量標準-熵 信息增益 決策樹構造實例 信息增益:表示特
機器學習讀書筆記(三)決策樹基礎篇之從相親說起
方法 事務 家裏 分類 筆記 判斷 都是 rom tro 一、決策樹 決策樹是什麽?決策樹(decision tree)是一種基本的分類與回歸方法。舉個通俗易懂的例子,如下圖所示的流程圖就是一個決策樹,長方形代表判斷模塊(decision block),橢圓形成代
決策樹(三)分類算法小結
最大的 可靠 dot 記錄 依賴 基礎 判定樹 每一個 循環調用 引言 本文主要是對分類型決策樹的一個總結。在分類問題中,決策樹可以被看做是if-then規則的結合,也可以認為是在特定特征空間與類空間上的條件概率分布。決策樹學習主要分為三個步驟:特征選擇、決策樹的生成與
決策樹(三)剪枝
可以這樣理解,剪枝後剩下的計算損失函式比剪枝前更小。 來源: https://blog.csdn.net/bird_fly_i/article/details/72824639?utm_sourc
決策樹(三)分類演算法小結
引言 本文主要是對分型別決策樹的一個總結。在分類問題中,決策樹可以被看做是if-then規則的結合,也可以認為是在特定特徵空間與類空間上的條件概率分佈。決策樹學習主要分為三個步驟:特徵選擇、決策樹的生成與剪枝操作。本文簡單總結ID3和C4.5演算法,之後是決策樹的修剪。 ID3演算法 ID3演算法和核
機器學習(西瓜書)學習筆記(三)---------決策樹
1、基本流程 決策樹通常從一個最基本的問題出發,通過這個判定問題來對某個“屬性”進行“測試”,根據測試的結果來決定匯出結論還是匯出進一步的判定問題,當然,這個判定範圍是在上次決策結果的限定範圍之內的。 出發點
機器學習(三)決策樹演算法ID3的實現
上一篇機器學習的部落格我詳細說了機器學習中決策樹演算法的原理,這篇部落格我就以一個小例子來說明機器學習中決策樹演算法的實現。用Python實現機器學習中的決策樹演算法需要用到機器學習的庫,sklearn,我的部落格有詳細講解怎麼安裝機器學習中用到的sklearn庫
Python機器學習(三)--決策樹演算法
一、決策樹原理 決策樹是用樣本的屬性作為結點,用屬性的取值作為分支的樹結構。 決策樹的根結點是所有樣本中資訊量最大的屬性。樹的中間結點是該結點為根的子樹所包含的樣本子集中資訊量最大的屬性。決策樹的葉結點是樣本的類別值。決策樹是一種知識表示形式,它是對所有樣本資料的高度概括
決策樹(四)決策樹調參
spa lin rep core lua 性能 lib bin target 引言 在這篇文章中,我們將探討決策樹模型的最重要參數,以及它們如何防止過度擬合和欠擬合,並且將盡可能少地進行特征工程。我們將使用來自kaggle的泰坦尼克號數據。 導入數據 import
nyoj 119士兵殺敵(三)(線段樹區間最值查詢,RMQ算法)
信息 include out online log 每次 left 一行 [0 題目119 題目信息 執行結果 本題排行 討論區 士兵殺敵(三) 時間限制:2000 ms | 內存限制:65535 KB 難度:5
軟件性能測試技術樹(三)----數據庫(MySQL)性能
指標 實時 代碼 瓶頸 pan 調優 存儲引擎 百度 servle 全圖: MySQL重點監控指標: MySQL主流分支: 數據庫架構設計: MySQL慢查詢: SQL語句分析與調優: MySQL索引: MySQL存儲引擎: M
(三)提升樹模型:Lightgbm原理深入探究
本篇部落格是提升樹模型部落格的第三篇文章,也是最後一篇文章。 第一篇介紹GBDT的部落格可以參看這裡。 第二篇介紹Xgboost的部落格可以參看這裡。 本篇部落格主要講解輕量級的提升樹模型-LightGBM。 LightGBM的資料網上也出現很多,但是講解的都很淺,大部分都是從官方文
Exynos4412 中斷驅動開發(三)—— 裝置樹中中斷節點的建立
https://www.cnblogs.com/tureno/articles/6403946.html 轉載於 : http://blog.csdn.net/zqixiao_09/article/details/50916212 題目: Exynos4412 中斷驅動
C++遞迴遍歷資料夾(三)——建立樹結構
補充上篇部落格:遞迴遍歷資料夾時,同步在記憶體中建立相同的樹狀結構,用來描述所有檔案和資料夾的儲存結構。 具體實現如下: // recursion3.cpp #include <vect
資料結構之樹(三)——二叉樹定義和性質
二叉樹(Binary Tree)是n(n>=0)個結點的有限集合,該集合或者為空集(稱為空二叉樹),或者由一個根結點和倆棵互不相交的,分別稱為根結點的左子樹和右子樹的二叉樹組成。 如圖: 二叉樹的特點 二叉樹的特點: 1.每個結點最多有倆棵子樹,所以二叉樹中不存在度
數據結構(三)--- B樹(B-Tree)
高速緩存 .com 記得 ret 足夠 gin 行合並 add 樹和二叉樹 文章圖片代碼來自鄧俊輝老師的課件 概述 上圖就是 B-Tree 的結構,可以看到這棵樹和二叉樹有點不同---“又矮又肥”。同時子節點可以有若幹個小的子節點構成。那麽
KNN(三)--KD樹詳解及KD樹最近鄰演算法
之前blog內曾經介紹過SIFT特徵匹配演算法,特徵點匹配和資料庫查、影象檢索本質上是同一個問題,都可以歸結為一個通過距離函式在高維向量之間進行相似性檢索的問題,如何快速而準確地找到查詢點的近鄰,不少人提出了很多高維空間索引結構和近似查詢的演算法。 一般說來,索引結構中相似性查詢有兩種基本的方式:
樹狀陣列與線段樹(三)
找規律題 1.螺旋折線 如下圖所示的螺旋折線經過平面上所有整點恰好一次。 對於整點 (X,Y),我們定義它到原點的距離 dis(X,Y) 是從原點到 (X,Y) 的螺旋折線段的長度。 例如 dis(0,1)=3,dis(−2,&minu