1. 二階導數資訊
gbdt在優化時只用到了一階導數資訊,而xgboost則對損失函式進行了二階泰勒展開,同時用到了一階和二階導數。
2. 防止過擬合
(1)正則項
xgboost在代價函式裡新增了正則項,用於控制模型的複雜度。正則項包括葉子結點的個數以及葉子節點值的l2範數。從bias-variance tradeoff的角度來講,增大偏差,減小方差。
(2)shrinkage
xgboost在每次學習得到一棵新的子樹之後,會將葉子結點的值乘上乙個大於0小於1的數,目的是為了削弱每一棵子樹對整體模型的影響,讓後面有更大的學習空間。
(3)column subsampling
xgboost借鑑了隨機森林的思想,支援列抽樣,即特徵隨機性,不僅能有效地防止過擬合,還能加速計算。
3. 平行計算
(1)block結構
這裡的平行計算並不是指樹粒度上的並行,而是指特徵粒度上的並行。xgboost在訓練之前,首先將資料的全部特徵進行了排序,並儲存為block結構,因此在尋找最佳分割點時,可以同時對多個特徵進行求解。
(2)近似直方圖法
相比於gbdt採用貪心演算法來計算最佳分割點,xgboost在計算最佳分割點時採用近似直方圖法,先提出候選分割點,平行計算得到最佳分割點所在的區間,然後在該區間內的所有可能分割點中選擇最佳分割點。
4. 缺失值處理
(1)訓練時
xgboost在尋找最佳分割點時不會考慮缺失值的影響,而在最佳分割點確定之後會將缺失資料分別放到左子樹和右子樹中計算損失,並選擇較優的那乙個。
(2)**時
如果在**時出現了缺失資料,xgboost會自動將其分到右子樹。
面試必備 SVM優點解析
支援向量機 svm 的原始演算法 基本思路 間隔最大化,直觀解釋是能以最大的置信度對訓練資料集進行分類。推導步驟 1 構建約束優化問題 2 將幾何間隔用函式間隔表示,並令函式間隔等於1 3 將最大化問題轉化為最小化問題,即凸二次規劃 convex quadratic programming 問題。支...
面試疑難點解析
list,set,map,有什麼區別?list和set實際上市實現了collection介面,那麼collection介面的原理你能簡單描述一下嗎?list介面可以插入多個null值,並且重複值,而且list是乙個有序的集合。set是乙個不可重複的集合,裡面的元素都只出現,最多隻出現1次,並且set...
面試必備 作用域 作用域鏈 預解析
1.變數分為區域性變數和全域性變數,2.作用域 就是變數的使用範圍 所以,作用域也分為區域性作用域和全域性作用域 3.js中沒有塊級作用域,也就是說 一對大括號 定義的變數,這個變數可以在大括號外面使用。栗子1 栗子2 栗子3 4.函式中定義的變數是區域性變數 5.作用域鏈 變數的使用,從裡向外,層...