日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【sklearn学习】集成算法之梯度提升树GBDT

發(fā)布時間:2023/12/15 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【sklearn学习】集成算法之梯度提升树GBDT 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

梯度提升樹(Gradient Boosting Decision Tree, GBDT)是提升法中的代表算法

GBDT中包含Boosting三要素

  • 損失函數(shù):用以衡量模型預(yù)測結(jié)果與真實結(jié)果的差異
  • 弱評估器:決策樹,不同的boosting算法使用不同的建樹流程
  • 綜合集成結(jié)果:集成算法具體如何輸出集成結(jié)果

建模流程:

依據(jù)上一個弱評估器的結(jié)果,計算損失函數(shù),并使用損失函數(shù)自適應(yīng)影響下一個弱評估器的構(gòu)建。集成模型輸出的結(jié)果,受到整體所有弱評估器的影響。

GBDT的不同

弱評估器

GBDT的弱評估器輸出類型不再和整體集成算法輸出類型一致,無論GBDT整體在執(zhí)行回歸、分類、排序任務(wù),弱評估器一定是回歸器。GBDT通過sigmoid或softmax函數(shù)輸出具體的分類結(jié)果,但實際弱評估器一定是回歸器。

損失函數(shù)

GBDT損失函數(shù)不再局限于固定或單一的某個損失函數(shù)

擬合殘差

GBDT通過修改后續(xù)弱評估器的擬合目標(biāo)(標(biāo)簽y)來直接影響后續(xù)弱評估器的結(jié)構(gòu),每次用于建立弱評估器的是樣本以及擋下集成輸出與真實標(biāo)簽的差異,而Adaboost通過調(diào)整數(shù)據(jù)分布間接影響后續(xù)弱評估器。

抽樣思想

GBDT加入了隨機(jī)森林的隨機(jī)抽樣思想,在每次建樹前,允許對樣本和特征進(jìn)行抽樣來增大弱評估器之間的獨立性。

sklearn 中集成了GBDT分類和GBDT回歸

sklearn.ensemble.GradientBoostingClassifier

class?sklearn.ensemble.GradientBoostingClassifier(*,?loss='deviance',?learning_rate=0.1,?n_estimators=100,?subsample=1.0,?criterion='friedman_mse',?min_samples_split=2,?min_samples_leaf=1,?min_weight_fraction_leaf=0.0,?max_depth=3,?min_impurity_decrease=0.0,?init=None,?random_state=None,?max_features=None,?verbose=0,?max_leaf_nodes=None,?warm_start=False,?validation_fraction=0.1,?n_iter_no_change=None,?tol=0.0001,?ccp_alpha=0.0)

類型參數(shù)/屬性
迭代過程

參數(shù):n_extimators, learning_rate, loss, alpha, init

屬性:loss_, init_, extimators_

弱評估器結(jié)構(gòu)criterion, max_depth, min_samples_split, min_samples_leaf, min_weight_fraction_leaf, max_leaf_nodes, min_impurity_decrease
提前停止

參數(shù):validation_fraction, n_iter_no_change, tol

屬性:n_estimators_

弱評估的器訓(xùn)練數(shù)據(jù)

參數(shù):subsam, max_featuures, random_state

屬性:oob_improvement, train_score_

其它ccp_alpha

1. 迭代過程

n_estimators:具體迭代次數(shù)

learning_rate:學(xué)習(xí)率參數(shù)

init:輸入計算初始預(yù)測結(jié)果的估計器對象

可以輸入任意評估器,如決策樹、邏輯回歸等可以輸出概率的模型

字符串“zero”,代表從0開始迭代

None對象,默認(rèn)為None對象,自動選擇類DummyEstimator中的某種默認(rèn)方式進(jìn)行預(yù)測作為結(jié)果

在init中輸入訓(xùn)練好的模型會加重GBDT的過擬合,通常選擇None作為init的輸入

使用回歸器完成分類任務(wù)

多分類情況會按照實際的標(biāo)簽數(shù)建立迭代次數(shù)*類別數(shù)個弱評估器

GBDT的8種損失函數(shù)

GBDT將損失函數(shù)從有限的指數(shù)損失、MSE推廣到任意可微函數(shù)

"deviance":交叉熵?fù)p失

二分類交叉熵?fù)p失

多分類交叉熵?fù)p失

二分類指數(shù)損失

多分類指數(shù)損失

平方誤差? squared_error

絕對誤差? absolute_error

Huber損失? huber

quantile損失? quantile

當(dāng)高度關(guān)注離群值、并且希望努力將離群值預(yù)測正確時,選擇平方誤差squared_error

努力排除離群值影響、更關(guān)注非離群值的時候,選擇絕對誤差absolute_error

試圖平衡離群值與非離群值、沒有偏好時,選擇Huber或者Quantileloss

參數(shù)/屬性名作用
n_estimators集成算法種弱分類器數(shù)量,對Boosting算法而言為實際迭代次數(shù)
learning_rateBoosting算法中的學(xué)習(xí)率,影響弱分類器結(jié)果的加權(quán)求和過程
loss、alpha需要優(yōu)化的損失函數(shù),以及特定損失函數(shù)需要調(diào)節(jié)的閾值
init初始化預(yù)測結(jié)果H0的設(shè)置
loss_返回具體的損失函數(shù)對象
init_返回具體的初始化設(shè)置
estimators_返回實際建立的評估器列表
n_estimators_返回實際迭代次數(shù)

?對于GBDT,各個參數(shù)對算法的影響:

影響力參數(shù)
幾乎總是具有巨大影響力

n_estimators(整體學(xué)習(xí)能力)

learning_rate(整體學(xué)習(xí)速率)

max_features(隨機(jī)性)

大部分時候具有影響力

init(初始化)

subsamples(隨機(jī)性)

loss(整體學(xué)習(xí)能力)

可能有大影響力,大部分時候影響力不明顯

max_depth(粗剪枝)

min_samples_split(精剪枝)

min_impurity_decrease(精剪枝)

max_leaf_nodes(精剪枝)

criterion(分枝敏感度)

當(dāng)數(shù)據(jù)量足夠大時,幾乎無影響

random_state

ccp_alpha(結(jié)構(gòu)風(fēng)險)

可以進(jìn)行優(yōu)化的參數(shù):loss、criterion、init、n_estimators、learning_rate、max_features、subsamples、max_depth、min_impurity_decrease

參數(shù)范圍
loss'squared_error','absolute_error','huber','quantile'
criterion'friedman_mse','squared_error','mse','mae'
init
n_estimators(25,200,25)
learning_rate(0.05,2.25,0.05)
max_features
subsample(0.1,0.8,0.1)
max_depth(2,30,2)
min_impurity_decrease(0,5,1)

總結(jié)

以上是生活随笔為你收集整理的【sklearn学习】集成算法之梯度提升树GBDT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。