1. 程式人生 > >整合學習之boosting,Adaboost、GBDT 和 xgboost(三)

整合學習之boosting,Adaboost、GBDT 和 xgboost(三)

AdaBoost演算法的解釋——前向分步法與提升樹(GBDT)

可以認為AdaBoost演算法是模型為加法模型,損失函式為指數函式、學習演算法為前向分步演算法時的二類分類學習方法。

前向分步演算法:

考慮加法模型 f ( x ) =

m = 1 M β m b
( x ; γ m ) f(x)=\displaystyle\sum_{m=1}^{M}β_mb(x;γ_m)
—— (式1)
其中 b ( x ; γ m ) γ m β m b(x;γ_m)為基函式,γ_m為基函式的引數,β_m為基函式的係數。 顯然式1 是個加法模型。
在給定訓練資料和損失函式 L ( y , f ( x ) ) L(y,f(x)) 的條件下,學習加法模型 f ( x ) f(x) 稱為經驗風險極小化即損失函式極小化問題:
在這裡插入圖片描述
通常這是一個複雜的優化問題。前向分步演算法求解這一優化問題的想法是:因為學習的是加法模型,如果能夠從前往後求解,每一步只學習一個基函式及其係數,逐步逼近優化目標函式,那麼就可以簡化優化的複雜度。

具體的,每一步只需優化如下損失函式:
在這裡插入圖片描述
給定訓練資料集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) ( x N , y N ) T={(x_1,y_1),(x_2,y_2)……(x_N,y_N)} 損失函式 L ( y , f ( x ) ) L(y,f(x)) 和基函式的集合{ b ( x ; γ m ) b(x;γ_m) },學習加法模型 f ( x ) f(x) 的前向分步演算法如下:
輸入:訓練資料集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) ( x N , y N ) T={(x_1,y_1),(x_2,y_2)……(x_N,y_N)} ;損失函式 L ( y , f ( x ) ) L(y,f(x)) 和基函式的集合{ b ( x ; γ m ) b(x;γ_m) }
輸出:加法模型 f ( x ) f(x)

  1. :初始化 f 0 ( x ) = 0 f_0(x)=0
    2):對m=1,2……M:
    (a):極小化損失函式
    ( β m , γ m ) = a r g m i n i = 1 N L ( y i , f m 1 ( x i ) + β b ( x i ; γ ) ) (β_m,γ_m)=argmin\displaystyle\sum_{i=1}^{N}L(y_i,f_{m-1}(x_i)+βb(x_i;γ))
    得到引數 β m , γ m β_m,γ_m
    (b)更新, f m ( x ) = f m 1 ( x ) + β m b ( x ; γ m ) f_m(x)=f_{m-1}(x)+β_mb(x;γ_m)
    3)得到加法模型 f ( x ) = f M ( x ) = m = 1 M β m b ( x ; γ m ) f(x)=f_M(x)=\displaystyle\sum_{m=1}^{M}β_mb(x;γ_m)

這樣,前向分步演算法將同時求解從m=1到M的所有引數 β m , γ m β_m,γ_m 的優化問題簡化為逐次求解各個 β m , γ m β_m,γ_m 的優化問題。

提升樹

提升樹是以分類樹與迴歸樹為基本分類器的提升方法。提升樹被認為是統計學習中效能最好的方法之一。
提升樹模型
提升方法實際是採用加法模型(即基函式的線性組合)與前向分步演算法。**以決策樹為基函式的提升方法稱為提升樹。**對分類問題決策樹是二叉分類樹,對迴歸問題決策樹是二叉迴歸樹。
提升樹模型可以表示成決策樹的加法模型:
f M ( x ) = m = 1 M T ( x ; m ) f_M(x)=\displaystyle\sum_{m=1}^{M}T(x;⊙_m)

相關推薦

整合學習boostingAdaboostGBDT xgboost

AdaBoost演算法的解釋——前向分步法與提升樹(GBDT) 可以認為AdaBoost演算法是模型為加法模型,損失函式為指數函式、學習演算法為前向分步演算法時的二類分類學習方法。 前向分步演算法: 考慮加法模型

整合學習boostingAdaboostGBDT xgboost

AdaBoost 演算法的訓練誤差分析 AdaBoost最基本的性質是它能在學習過程中不斷減少訓練誤差,即在訓練資料集上的分類誤差率。 定理:AdaBoost的訓練誤差界: 1

整合學習boostingAdaboostGBDT xgboost

在前面的部落格(https://blog.csdn.net/qq_16608563/article/details/82878127) 介紹了整合學習的bagging方法及其代表性的隨機森林。此次接著介紹整合學習的另一個方法boosting以及boosting系列的一些演算法,具體包括 Ad

linux學習多高並發服務器篇

strong recvfrom printf .com getaddr from ica 1.0 有一個 UDP多播服務器 多播   組播組可以是永久的也可以是臨時的。組播組地址中,有一部分由官方分配的,稱為永久組播組。永久組播組保持不變的是它的ip地址,組中的成員構成可以

字串向量陣列

1.陣列 陣列是一種類似於標準庫型別vector一種資料結構,但是在效能和靈活度上和vector又有所差異。與vector不同的是,陣列的大小固定,不能動態地往裡面新增元素,在一些特殊的場合使用陣列,效能會好一些,但是相應地靈活度會差一些。 1.1定義和初始

cocos2d-x動作特效動畫扭曲動作

    CCActionInterval *actionTo = CCSkewTo::create(2, 70.0f, 0.0f);       CCActionInterval *actionToBack = CCSkewTo::create(2, 0, 0);  

機器學習筆記-整合學習BaggingBoosting隨機森林三者特性對比

整合學習的概念 定義:整合學習通過構建並結合多個學習器來完成學習任務。 分類:只包含同種型別的個體學習器,這樣的整合是“同質”的,例如都是神經網路或者決策樹;包含不同型別的個體學習器,這樣的整合是“異質”的,例如同時包括神經網路和決策樹。 作用:整合學習通過將多個學

大白話5分鐘帶你走進人工智慧-第30節整合學習Boosting方式Adaboost

目錄   1、前述: 2、Bosting方式介紹: 3、Adaboost例子: 4、adaboost整體流程: 5、待解決問題: 6、解決第一個問題:如何獲得不同的g(x): 6.1 我們看下權重與函式的關係: 6.2 gt和un的關係數學公式表達: 6.3 引導Un+1的思路:

[白話解析] 通俗解析整合學習baggingboosting & 隨機森林

# [白話解析] 通俗解析整合學習之bagging,boosting & 隨機森林 ## 0x00 摘要 本文將盡量使用通俗易懂的方式,儘可能不涉及數學公式,而是從整體的思路上來看,運用感性直覺的思考來解釋 **整合學習**。並且從名著中延伸了具體應用場景來幫助大家深入這個概念。 在機器學習過程

mongoDB學習安裝配置啟動命令應用

mongoDB初學 mongoDB學習了一段時間,今天整理一下,以便自己回顧,加深印象,同時讓更多mongo初學者有個好的資料。真好 在學習mongoDB之前,我們先了解什麼是mongoDB,以及相關概念 MongoDB 是一個基於分散式檔案儲存的資料庫。由 C++

mongoDB學習安裝配置啟動命令應用-

上篇說了java連線mongo,並進行增刪改查 這篇說一下spring整合mongo github上也有小demo,很簡單,適合初學者,地址:點選跳轉 1、首先建立maven專案,新增依賴 <!-- mongo驅動 --> <dependen

整合學習boosting系列一

整合學習之boosting系列演算法

機器學習筆記十一——整合學習Boosting及AdaBoosting

   上一篇記述了Bagging的思維與應用 : https://blog.csdn.net/qq_35946969/article/details/85045432    本篇記錄Boosting的思想與應用:AdaBoosting、GDBT(

boostingadaboostGBDTxgboostlightGBM

提升方法,是將多個專家的判斷進行適當的綜合所得出的判斷,要比其中任何一個專家單獨的判斷好。 Kearns和Valiant提出了“強可學習”和“弱可學習”的概念 強可學習:在概率近似正確學習的框架中,一個概念(一個類),如果存在一個多項式的學習演算法能夠學習它

Linux學習使用者切換su su - exit的不同

Linux命令列下切換使用者: su username su - username 還可以用exit退出,再次登入,例 [[email protected] pratice]$ su - root Password: Last login: Thu Aug 23 08

Oracle學習筆記—Db_nameDb_domainGlobal_nameService_nameInstance_nameOracle_SID轉載

安全 文件中 分布 好處 避免 名稱 detail 數據庫安全 自動 轉載自: Oracle中DB_NAME,SID,DB_DOMAIN,SERVICE_NAME等之間的區別 Db_name:對一個數據庫(Oracle database)的唯一標識。這種表示對於單個數據

webpack學習—— 依賴圖(Dependency Graph) 及 構建目標Targets

targe pan hunk ref bsp strong req class webp Dependency Graph 任何時候,一個文件依賴於另一個文件,webpack 就把此視為文件之間有依賴關系。這使得 webpack 可以接收非代碼資源(non

linux學習多高並發服務器篇

多線程 同步 https 進程調度 creat server side lis logs 高並發服務器 高並發服務器 並發服務器開發 1.多進程並發服務器   使用多進程並發服務器時要考慮以下幾點: 父最大文件描述個數(父進程中需要close關閉accept返回的新文件

Spring Cloud學習-EurekaRibbonFeign

Spring Cloud學習-Eureka、Ribbon和Feign   Talk is cheap,show me the code , 書上得來終覺淺,絕知此事要躬行。在自己真正實現的過程中,會遇到很多莫名其妙的問題,而正是在解決這些問題的過程中,你會發現自己之前思維的

Linux學習路:第一章下載並安裝LinuxCentOS7

備註:屬於個人分享,文章如有問題請留言,謝謝! 第一章下載並安裝Linux 1、官方下載地址: DVD ISO                   基本安裝包    大小4.16G Everything ISO                 最全安裝包