XGBOOST常見問題以及面試題

2021-10-08 21:57:17 字數 1294 閱讀 4250

說到xgboost需要首先說一說gbdt,它是一種基於boosting增強策略的加法模型,訓練時候採用前向分布演算法進行貪婪學習,每次學習都是一顆cart樹,來擬合之前t-1棵樹**結果與訓練樣本真實值的殘差。

xgboost是對gbdt進行來一系列的優化,比如損失函式進行了二階展開,目標函式加入正則項,支援並行和預設缺失值處理等,在可擴充套件性和訓練速度上有了巨大提公升,但是核心思想沒有大的變化。

「你能講一下xgboost和gbdt的區別嗎?」另一種回答方式

xgboost在設計之初,為了防止過擬合就採取了很多的優化,具體如下:

xgboost模型的乙個優點就是允許存在缺失值,對缺失值的處理如下:

「對缺失值是怎麼處理的?」另一種回答方式

凡是這種迴圈迭代的方式必定有停止條件,什麼時候停止呢?簡言之,設定樹的最大深度、當樣本權重和小於設定閾值時停止生長以防止過擬合。具體而言,則

很有意思的乙個事是,我們從頭到尾了解了xgboost如何優化、如何計算,但樹到底長啥樣,我們卻一直沒看到。很顯然,一棵樹的生成是由乙個節點一分為二,然後不斷**最終形成為整棵樹。那麼樹怎麼**的就成為了接下來我們要**的關鍵。對於乙個葉子節點如何進行**,xgboost作者在其原始**中給出了一種**節點的方法:列舉所有不同樹結構的貪心法

不斷地列舉不同樹的結構,然後利用打分函式來尋找出乙個最優結構的樹,接著加入到模型中,不斷重複這樣的操作。這個尋找的過程使用的就是貪心演算法。選擇乙個feature**,計算loss function最小值,然後再選乙個feature**,又得到乙個loss function最小值,你列舉完,找乙個效果最好的,把樹給**,就得到了小樹苗。

總而言之,xgboost使用了和cart回歸樹一樣的想法,利用貪婪演算法,遍歷所有特徵的所有特徵劃分點,不同的是使用的目標函式不一樣。具體做法就是**後的目標函式值比單子葉子節點的目標函式的增益,同時為了限制樹生長過深,還加了個閾值,只有當增益大於該閾值才進行**。從而繼續**,形成一棵樹,再形成一棵樹,每次在上一次的**基礎上取最優進一步**/建樹。

在計算損失函式時,考慮不平衡因素,加權損失。

「是的,我們有試過,xgboost的精度要比gbdt高而且效率也要更高。我認為精度高的最大原因是大部分的ctr特徵中,我們會將一些稀疏的離散特徵轉化為連續特徵,會產生很多含有缺失值的稀疏列,導致原始gbdt演算法效果不好。而xgboost會對缺失值做乙個特殊的處理。在單機的效率高是因為建樹時採用了基於分位數的分割點估計演算法」

會繼續更新

面試常見問題

面試時,有幾個問題是公司面試人員常常會提出的,針對這些問題好好準備,在面試時也就不會啞口無言,無言以對了,下面就面試十大必考題做出分析,也許對hr經理也是乙個 1 為什麼想進本公司?這通常是面試官最先問到的問題。此時面試官就開始評斷錄用與否了,建議大家先判斷自己去應徵的工作性質,是專業能力導向呢,或...

面試常見問題

1.如果我們不能提供你所要求的薪水,你還願意來我們公司嗎?你的期望薪水是多少?你想得到的薪水是多 少?如果達不到你的要求,怎麼辦?答 我認為工作最重要的是合作開心,薪酬是其次的,不過我原來的月薪是 元,如果跳槽的話就希望 自己能有點進步,如果不是讓您太為難的話,您看這個工資是不是可以有一點提高?2....

面試常見問題

網線與集線器屬於物理層 網絡卡與交換機屬於資料鏈路層 路由器屬於網路層 防治方法 htmlspecialchars 轉義特殊字元為字元實體,strip tags 過濾html標籤,addslashes 可轉義單雙引號反斜槓null 在特殊字元前面加反斜槓進行轉義 防治方法 請求附加隨機token進行...