XGBoost在訓練前預先将特征按照特征值進行了排序,并存儲為block結構,以後在結點分裂時可以重複使用該結構。
因此,可以采用特征并行的方法利用多個線程分别計算每個特征的最佳分割點,根據每次分裂後産生的增益,最終選擇增益最大的那個特征的特征值作為最佳分裂點。
如果在計算每個特征的最佳分割點時,對每個樣本都進行遍曆,計算複雜度會很大,這種全局掃描的方法并不适用大數據的場景。XGBoost還提供了一種直方圖近似算法,對特征排序後僅選擇常數個候選分裂位置作為候選分裂點,極大提升了結點分裂時的計算效率。
問題7:XGBoost如何評價特征的重要性采用三種方法來評判XGBoost模型中特征的重要程度:
weight :該特征在所有樹中被用作分割樣本的特征的總次數。
gain :該特征在其出現過的所有樹中産生的平均增益。
cover :該特征在其出現過的所有樹中的平均覆蓋範圍。
注意:覆蓋範圍這裡指的是一個特征用作分割點後,其影響的樣本數量,即有多少樣本經過該特征分割到兩個子節點。
問題8:GBDT與Xgboost的區别傳統的GBDT以CART樹作為基學習器,XGBoost還支持線性分類器,這個時候XGBoost相當于L1和L2正則化的邏輯斯蒂回歸(分類)或者線性回歸(回歸);
傳統的GBDT在優化的時候隻用到一階導數信息,XGBoost則對代價函數進行了二階泰勒展開,得到一階和二階導數;
XGBoost在代價函數中加入了正則項,用于控制模型的複雜度。從權衡方差偏差來看,它降低了模型的方差,使學習出來的模型更加簡單,放置過拟合,這也是XGBoost優于傳統GBDT的一個特性;
shrinkage(縮減),相當于學習速率(XGBoost中的eta)。XGBoost在進行完一次叠代時,會将葉子節點的權值乘上該系數,主要是為了削弱每棵樹的影響,讓後面有更大的學習空間。(GBDT也有學習速率);
列抽樣:XGBoost借鑒了随機森林的做法, 支持列抽樣, 不僅防止過 拟合,還能減少計算;
對缺失值的處理: 對于特征的值有缺失的樣本,XGBoost還可以自動 學習出它的分裂方向;
XGBoost工具支持并行。Boosting不是一種串行的結構嗎?怎麼并行 的?注意XGBoost的并行不是tree粒度的并行,XGBoost也是一次叠代完才能進行下一次叠代的(第t次叠代的代價函數裡包含了前面t-1次叠代的預測值)。
XGBoost的并行是在特征粒度上的。我們知道,決策樹的學習最耗時的一個步驟就是對特征的值進行排序(因為要确定最佳分割點),XGBoost在訓練之前,預先對數據進行了排序,然後保存為block結構,後面的叠代 中重複地使用這個結構,大大減小計算量。
這個block結構也使得并行成為了可能,在進行節點的分裂時,需要計算每個特征的增益,最終選增益最大的那個特征去做分裂,那麼各個特征的增益計算就可以開多線程進行。
問題9:XGBoost和LightGBM的區别xgboost采用的是level-wise的分裂策略,而lightGBM采用了leaf-wise的策略,區别是xgboost對每一層所有節點做無差别分裂,可能有些節點的增益非常小,對結果影響不大,但是xgboost也進行了分裂,帶來了不必要的開銷。
leaft-wise的做法是在當前所有葉子節點中選擇分裂收益最大的節點進行分裂,如此遞歸進行,很明顯leaf-wise這種做法容易過拟合,因為容易陷入比較高的深度中,因此需要對最大深度做限制,從而避免過拟合。
lightgbm使用了基于histogram的決策樹算法,這一點不同與xgboost中的 exact 算法,histogram算法在内存和計算代價上都有不小優勢。
内存:直方圖算法的内存消耗為(#data* #features * 1Bytes)(因為對特征分桶後隻需保存特征離散化之後的值),而xgboost的exact算法内存消耗為:(2 * #data * #features* 4Bytes),因為xgboost既要保存原始feature的值,也要保存這個值的順序索引,這些值需要32位的浮點數來保存。
計算:預排序算法在選擇好分裂特征計算分裂收益時需要遍曆所有樣本的特征值,時間為(#data),而直方圖算法隻需要遍曆桶就行了,時間為(#bin)
問題10:XGBoost模型如果過拟合了怎麼解決當出現過拟合時,有兩類參數可以緩解:
第一類參數:用于直接控制模型的複雜度。包括max_depth,min_child_weight,gamma 等參數
第二類參數:用于增加随機性,從而使得模型在訓練時對于噪音不敏感。包括subsample,colsample_bytree還有就是直接減小learning rate,但需要同時增加estimator 參數。
金三銀四求職季,進大廠是大部分程序員的夢想,而進大廠的門檻也是比較高的。刷題,也成為面試前的必備環節。
七妹給大家準備了“秘籍”,七月在線幹貨組繼19年出的兩本書《名企AI面試100題》和《名企AI面試100篇》後,又整理出《機器學習十大算法系列》、《2021年最新大廠AI面試題 Q4版》兩本圖書,總結了市面上大廠的面試題。
為了讓更多AI人受益,七仔現把電子版免費送給大家,希望對你的求職有所幫助。如果點贊和點在看的人數較多,我會後續整理資料并分享答案給大家。
↓ ↓ ↓以下4本書,電子版,直接送 ↓ ↓ ↓
評論區回複 " 007 " 領取!
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!