學習任務:
前向分步演算法
負梯度擬合
損失函式
回歸二分類,多分類
正則化優缺點
sklearn引數
應用場景
前言
提公升(boosting)方法是整合學習方法的一種,在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,將弱分類器組裝成乙個強分類器,提高分類的效能。其最具代表性的是adaboost演算法。
提公升方法實際採用加法模型(即基函式的線性組合)與前向分步演算法。提公升樹(boosting tree)是以決策樹為基函式的提公升方法。對分類問題決策樹是二叉分類樹,對回歸問題決策樹是二叉回歸樹。
提公升樹模型可以表示為決策樹的加法模型:
其中t(x;θm)表示決策樹;θm表示決策樹的引數;m為樹的個數。
不同問題的提公升樹學習演算法,其主要區別在於損失函式不同。
gbdt有很多簡稱,有gbt(gradient boosting tree) gtb(gradient tree boosting ) gbrt(gradient boosting regression tree) mart(multiple additive regression tree) 其實都是一種演算法。
gbdt也是使用的前向分步演算法和加法模型。
1.前向分步演算法
加法模型(additive model):
其中,b(x;γm)為基函式,βm為基函式的係數。
在給定訓練資料及損失函式l(y,f(x))的條件下,學習加法模型f(x)稱為經驗風險極小化,即損失函式極小化的問題:
通常這是乙個複雜的優化問題。前向分布演算法(forward stagwise algorithm)求解這一優化問題的思路是:因為學習的是加法模型,如果能夠從前向後,每一步只學習乙個基函式及其係數,逐步逼近優化目標函式式 :
那麼就可以簡化優化的複雜度。具體地,每步只需優化如下損失函式:
前向分步演算法步驟見:李航. ch8.p144.
2.負梯度擬合
針對乙個一般損失函式,freidman提出了梯度提公升的演算法,利用損失函式的負梯度在當前模型的值
來擬合本輪損失的近似值,進而擬合乙個回歸樹。
對於分類問題和回歸問題,通過其損失函式的負梯度的擬合,就可以用 gbdt 來解決分類回歸問題。區別僅僅在於損失函式不同導致的負梯度不同而已。
3.損失函式
對於分類演算法,其損失函式一般有對數損失函式和指數損失函式兩種:
對於回歸演算法,常用損失函式有如下4種:
4.回歸
輸入:訓練集樣本
最大迭代次數t, 損失函式l。
輸出:強學習器f(x)
過程見:
5.分類(二分類、多分類)
gbdt的弱學習器限定了只能使用cart回歸樹模型,在gbdt的迭代中,假設我們前一輪迭代得到的強學習器是ft−1(x), 損失函式是l(y,ft−1(x)), 我們本輪迭代的目標是找到乙個cart回歸樹模型的弱學習器ht(x),讓本輪的損失損失l(y,ft(x))=l(y,ft−1(x)+ht(x))最小。也就是說,本輪迭代找到決策樹,要讓樣本的損失盡量變得更小。
對於二元分類gbdt問題:
6.正則化
第一種是和adaboost類似的正則化項,即步長(learning rate)。
第二種正則化的方式是通過子取樣比例(subsample)。取值為(0,1]。
第三種是對於弱學習器即cart回歸樹進行正則化剪枝。與之前一篇決策樹內容講過的相同。
7.優缺點
gbdt主要的優點有:
可以靈活處理各種型別的資料,包括連續值和離散值。
在相對少的調參時間情況下,**的準備率也可以比較高。這個是相對svm來說的。
使用一些健壯的損失函式,對異常值的魯棒性非常強。比如 huber損失函式和quantile損失函式。
gbdt的主要缺點有:
由於gbdt演算法的卓越性,使其成為機器學習研究必須掌握的演算法之一,很多面試的問題也都會涉及這個方面,包括其原理、實現以及引數調優等。目前gbdt的演算法比較好的庫是xgboost,sklearn。
8.sklearn引數
from sklearn.ensemble import gradientboostingclassifier/gradientboostingregressor
引數:
GBDT演算法梳理
table of contents 1 gbdt概述 2 前向分布演算法 2.1 加法模型 2.2 前向分布演算法 2.2.1 思想 2.2.2 策略 2.2.3 加法模型求解 3 損失函式 4 負梯度擬合 5 回歸 6 gbdt分類 6.1 二分類 6.2 多分類 7 正則化 8 優缺點 9 sk...
GBDT演算法梳理
人工智慧之gbdt演算法 前言 人工智慧之機器學習主要有三大類 1 分類 2 回歸 3 聚類。今天我們重點 一下gbdt演算法。我們知道,gbm 請參見人工智慧 51 是乙個改善弱學習器效果的計算框架。gbm梯度提公升模組可以根據需要任意插入各種各樣的弱分類器。若弱學習器限定了只能使用cart回歸樹...
gbdt演算法 演算法梳理五 GBDT
真正開始動手寫,才發現以前理解的不夠深。弄懂乙個演算法,要想明白哪些問題?集合裡有m個樣本,n個特徵,gbdt每棵回歸樹怎麼構造 選取多少樣本,多少特徵 它的損失函式怎麼擬合,殘差是怎麼回事,梯度在其中的作用。gbdt有很多簡稱,有gbt gradient boosting tree gtb gra...