任務三 XGB演算法梳理

2021-09-12 01:21:43 字數 1253 閱讀 2473

cart樹

cart是決策樹演算法之一,它可用於分類問題也可用於回歸問題。它與id3、c4.5等演算法不同的是,在節點分支的時候,它每次僅分成左、右兩個節點,即它假設決策樹是二叉樹。另外,它在選擇最優分割變數與最優分割點的準則也有所不同

演算法原理

cart樹的生成就是遞迴地構建二叉決策樹的過程。對回歸樹用平方誤差最小化準則,對分類樹用基尼指數最小化準則,進行特徵選擇,生成二叉樹。

損失函式

**結點演算法

基於空間切分去構造一顆決策樹是乙個np難問題,我們不可能去遍歷所有樹結構,因此,xgboost使用了和cart回歸樹一樣的想法,利用貪婪演算法,遍歷所有特徵的所有特徵劃分點,不同的是使用上式目標函式值作為評價函式。具體做法就是**後的目標函式值比單子葉子節點的目標函式的增益,同時為了限制樹生長過深,還加了個閾值,只有當增益大於該閾值才進行**

正則化正則項用於控制模型的複雜度,也就是防止模型過擬合

對缺失值處理

當樣本的第i個特徵值缺失時,無法利用該特徵進行劃分時,xgboost的想法是將該樣本分別劃分到左結點和右結點,然後計算其增益,哪個大就劃分到哪邊

優缺點1)gbdt在優化時只用到一階導數,xgboosting對代價函式做了二階talor展開,引入了一階導數和二階導數;

2)當樣本存在缺失值是,xgboosting能自動學習**方向;

3)xgboosting借鑑rf的做法,支援列抽樣,這樣不僅能防止過擬合,還能降低計算;

4)xgboosting的代價函式引入正則化項,控制了模型的複雜度,正則化項包含全部葉子節點的個數,每個葉子節點輸出的score的l2模的平方和。從貝葉斯方差角度考慮,正則項降低了模型的方差,防止模型過擬合;

5)xgboosting在每次迭代之後,為葉子結點分配學習速率,降低每棵樹的權重,減少每棵樹的影響,為後面提供更好的學習空間;

應用場景

sklearn引數

booster

gbtree 樹模型做為基分類器(預設)

gbliner 線性模型做為基分類器

silent

silent=0時,不輸出中間過程(預設)

silent=1時,輸出中間過程

nthread

nthread=-1時,使用全部cpu進行並行運算(預設)

nthread=1時,使用1個cpu進行運算。

scale_pos_weight

正樣本的權重,在二分類任務中,當正負樣本比例失衡時,設定正樣本的權重,模型效果更好。例如,當正負樣本比例為1:10時,scale_pos_weight=10

Task3 XGB演算法梳理

參考 損失函式 傳統gbdt在優化時只用到一階導數資訊,xgboost則對代價函式進行了二階泰勒展開,同時用到了一階和二階導數。順便提一下,xgboost工具支援自定義代價函式,只要函式可一階和二階求導。結點演算法 點選擇的時候也,以目標函式最小化為目標。正則化 xgboost在代價函式裡加入了正則...

初級演算法梳理 任務1 線性回歸演算法梳理

有監督 無監督 泛化能力 過擬合欠擬合 方差和偏差以及各自解決辦法 交叉驗證 線性回歸的原理 線性回歸損失函式 代價函式 目標函式 優化方法 梯度下降法 牛頓法 擬牛頓法等 線性回歸的評估指標 sklearn引數詳解 機器學習任務包括兩類,有監督的和無監督的,有監督的主要包括分類與回歸,非監督的主要...

任務二 GBDT演算法梳理

gbdt gradient boosting decision tree 梯度提公升決策樹,是屬於boosting整合演算法的一類。bagging演算法是每個個體學習器的樣本是存在差異的,但是boosting每個個體學習器的樣本是不變,但是每次迭代的樣本權重是不同的。adabost演算法也是boos...