1. 程式人生 > >CART剪枝詳解

CART剪枝詳解

CART之剪枝詳解

我們這裡用的是代價複雜度剪枝演算法。

首先我們將一顆充分生長的樹稱為T0 ,我們希望減少樹的大小來防止過擬化,但又擔心去掉一些節點後預測的誤差會增大,那麼如何達到這兩個變數之間的平衡則是問題的關鍵,因此我們用一個變數α 來平衡,因此損失函式定義為如下:

Cα(T)=C(T)+α|T|
T為任意子樹,C(T)為預測誤差,可以是平方誤差也可以是基尼指數,|T|為子樹T的葉子節點個數,注意是葉子節點,α 是引數,C(T)衡量訓練資料的擬合程度,|T|衡量樹的複雜度(即大小),α 權衡擬合程度與樹的複雜度。

那麼我們如何找到這個合適的α來使擬合程度與複雜度之間達到最好的平衡呢,最好的辦法就是,我們將α

從0取到正無窮,對於每一個固定的α,我們都可以找到使得Cα(T)最小的最優子樹T(α) 。當α 很小的時候,T0 是這樣的最優子樹,當α 很大的時候,單獨一個根節點是這樣的最優的子樹。

儘管α 取值無限多,但是T0 的子樹是有限個,因此我們可以生成這樣一個子樹序列

T0>T1>T2>...>Tn
Tn 是最後剩下的那個根節點。(這裡的子樹生成是根據前一個子樹Ti ,剪掉某一個內部節點,生成Ti+1)然後對這樣的子樹序列分別用測試集進行交叉驗證,找到最優的那個子樹作為我們的決策樹。

高能預警:(這裡不注意的話,後面會有很大的疑惑)

Breiman證明:將α 從小增大,0=

α0<α0<...<αn<+ ,在每個區間[αi,αi+1) 中,子樹Ti 是這個區間裡最優的。

這也是代價複雜度剪枝的核心思想。

基於上面的論述,剪枝可分為兩部分,第一部分生成子樹序列,第二部分交叉驗證。

1. 生成子樹序列

我們每次剪枝剪的都是某個內部節點的子節點,也就是將某個內部節點的所有子節點回退到這個內部節點裡,並將這個內部節點作為葉子節點。因此在計算整體的損失函式時,這個內部節點以外的值都沒變,只有這個內部節點的區域性損失函式改變了,因此我們本需要計算全域性的損失函式,但現在只需要計算內部節點剪枝前和剪枝後的損失函式。

對任意內部節點t,

剪枝前的狀態:有|

Tt| 個葉子節點,預測誤差是C(Tt)

剪枝後的狀態:只有本身一個葉子節點,預測誤差是C(t)

因此剪枝前的以t節點為根節點的子樹的損失函式是

Cα(Tt)=C(Tt)+α|Tt|
剪枝後的損失函式是
Cα(t)=C(t)+α
易得,一定存在一個α 使得Cα(Tt)=Cα(t) ,這個值為
α=C(t)C(Tt)|Tt|1
這個α 的值有什麼意義,剛才我們高能預警的地方,0=α0<α1<...<αn<+ ,在每個區間[αi,αi+1) 中,子樹Ti 是這個區間裡最優的。為什麼呢?原因就在剛才的推導,對於當前這個節點,只要α 大於這個值時,一定有Cα(t)<Cα(Tt) ,也就是剪掉這個節點後都比不剪要更優。所以每個最優子樹對應的是一個區間,在這個區間內都是最優的。

然後我們對Ti 中的每個內部節點t都計算

g(t)=C(t)C(Tt)|Tt|1
(注意這裡的t是變數,上面推α 時是針對一個特定的t,也就是t是常量。)

書上說g(t)表示剪枝後整體損失函式減少的程度,然後剪去g(t)最小的Tt.

當初這是非常困擾我的一個地方,1.為什麼代表整體損失函式減少的程度。2.既然代表減少的程度,為什麼剪去g(t)最小的Tt ,而不是剪去g(t)最大的

相關推薦

CART剪枝

CART之剪枝詳解 我們這裡用的是代價複雜度剪枝演算法。 首先我們將一顆充分生長的樹稱為T0 ,我們希望減少樹的大小來防止過擬化,但又擔心去掉一些節點後預測的誤差會增大,那麼如何達到這兩個變數之間的平衡則是問題的關鍵,因此我們用一個變數α 來平衡,因此損失函

CART剪枝原理和過程 --- 機器學習

       這一節主要講前面多次的提到的決策樹問題,前面的決策樹生成演算法遞迴的產生決策樹,直到不能繼續分支或者達到要求為止,這樣的決策樹往往對訓練資料的分類很準確,因為他就是基於訓練資料的熵或者基尼不存度進行分類的,因此對訓練資料的會產生過擬合現象,而

CART剪枝原理和過程 --- 機器學習

       這一節主要講前面多次的提到的決策樹問題,前面的決策樹生成演算法遞迴的產生決策樹,直到不能繼續分支或者達到要求為止,這樣的決策樹往往對訓練資料的分類很準確,因為他就是基於訓練資料的熵或者基尼不存度進行分類的,因此對訓練資料的會產生過擬合現象,而對未知的資料則沒有那

CART剪枝演算法

CART剪枝演算法 CART剪枝演算法從“完全生長“的決策樹的底端剪去一些子樹,使決策樹變小(模型變簡單),從而能夠對未知資料有更準確的預測。CART剪枝演算法由兩步組成:首先從生成演算法產生的決策樹T0底端開始不斷剪枝,直到T0的根節點,形成一個子樹序列{T0,T1 ,…, Tn};然

一看就懂的Alpha-Beta剪枝演算法

原貼:http://blog.csdn.net/tangchenyi/article/details/22925957 Alpha-Beta剪枝演算法(Alpha Beta Pruning) Alpha-Beta剪枝用於裁剪搜尋樹中沒有意義的不需要搜尋的樹枝,以

一看就懂的 Alpha-Beta 剪枝演算法

Alpha-Beta剪枝用於裁剪搜尋樹中沒有意義的不需要搜尋的樹枝,以提高運算速度。假設α為下界

經典演算法--CART分類決策樹、迴歸樹和模型樹

Classification And Regression Tree(CART)是一種很重要的機器學習演算法,既可以用於建立分類樹(Classification Tree),也可以用於建立迴歸樹(Regression Tree),本文介紹了CART用於離散標籤分

[DataAnalysis]機器學習演算法——決策樹(屬性劃分+剪枝+缺失值/連續值處理)

決策樹簡述 決策樹是一種用於對例項進行分類的樹形結構。決策樹由節點(node)和有向邊(directed edge)組成。節點分成根節點、內節點(表示一個特徵或者屬性的測試條件)和葉子節點(表示一個分類)。 決策樹的生成是一個遞迴過程。在決策樹演算法中,有三種情形會導致遞

LeetCode37 使用回溯演算法實現解數獨,剪枝優化

本文始發於個人公眾號:**TechFlow**,原創不易,求個關注 數獨是一個老少咸宜的益智遊戲,一直有很多擁躉。但是有沒有想過,數獨遊戲是怎麼創造出來的呢?當然我們可以每一關都人工設定,但是顯然這工作量非常大,滿足不了數獨愛好者的需求。 所以常見的一種形式是,我們只會選擇難度,不同的難度對應不同的留空

LeetCode專題——搜尋演算法中的搜尋策略和剪枝

本文始發於個人公眾號:**TechFlow**,原創不易,求個關注 今天是LeetCode專題第20篇文章,今天討論的是數字組合問題。 描述 給定一個int型別的候選集,和一個int型別的target,要求返回所有的數字組合,使得組合內所有數字的和剛好等於target。 注意: 所有的元素都是正數所有

java Io 流類

修改 文件目錄 != exe [] 深入 clas one fileinput 關於java 流類的復習;習慣性的復習按照圖結構一層層往下深入去了解去復習,最後通過代碼來實現感覺印象會更深刻一些; 關於 I/O流:IO可以理解為JAVA用來傳遞數據的管道

cookie 和session 的區別

重復 處理方式 一行 所有 有效 依據 是把 存儲 一個 二者的定義: 當你在瀏覽網站的時候,WEB 服務器會先送一小小資料放在你的計算機上,Cookie 會幫你在網站上所打的文字或是一些選擇, 都紀錄下來。當下次你再光臨同一個網站,WEB 服務器會先看看有沒有它上次留下的

cd命令使用

表示 如果 用戶家目錄 roo 環境變量 方法 字符 實用 效果   cd命令是目錄切換命令,是shell內置命令。   語法:     cd [-L|-P] [dir]   選項:     -p 如果要切換到的目標目錄是一個符號連接,直接切換到符號連接指向的目標目錄   

setting.xml 配置

校驗 找不到 順序 裁剪 全局 -- mls leg 觸發 文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用戶配置: ${user.home}/.m2/settings.xml note:用戶配置優先於全局配置。${user.home}

R數據可視化----ggplot2之標度、坐標軸和圖例

abs 調整 所有 不同的 size n) 默認 表達 idt 標度控制著數據到圖形屬性的映射,當有需要時,ggplot2會自動添加一個默認的標度。我們確實可以在不了解標度運行原理的情況下畫出許多圖形,但理解標度並學會如何操縱它們則將賦予我們對圖形更強的控制能力。 每一種圖

跨域資源共享CORS

附加 accep 不發送 地址 code 克服 通信 數據 ror 簡介 CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。 它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX

磁盤陣列 RAID 技術原理

十分 單獨 很好 不同的 raid1 miss 和數 會同 帶寬 RAID一頁通整理所有RAID技術、原理並配合相應RAID圖解,給所有存儲新人提供一個迅速學習、理解RAID技術的網上資源庫,本文將持續更新,歡迎大家補充及投稿。中國存儲網一如既往為廣大存儲界朋友提供免費、精

Web.Config文件

htm 用法 名稱 href 會話狀態 行為 cookie 程序配置 會話 一).Web.Config是以XML文件規範存儲,配置文件分為以下格式 1.配置節處理程序聲明 特點: 位於配置文件的頂部,包含在<configSections>標誌中。

oracle recyclebin

tables 執行 reat 手工 emp 命令 沒有 -- 釋放 今天在SOA應用數據庫上運用DBMS_REDEFITION包進行在線非分區表轉換分區表操作時,本想DROP掉建的臨時表cube_scope_temp不小心後面忘記加"temp"直接執行了,我等意識到這個問題

POI操作Excel,讀取xls和xlsx格式的文件

shee xss split 類型 後綴 .sh lan xls lin package org.ian.webutil; import java.io.File; import java.io.FileInputStream; import java.io.FileN