adaboosting:
通過前向分步法,優化損失函式,為指數損失函式,然後梯度上公升樹。
可以 任意分類器作為弱分類器。
優化步長,與迭代次數。
gbdt
回歸問題:
1) 擬合殘差
2)cart樹
3)擬合負梯度
分類問題:
1)改變擬合loss, 比如: 邏輯回歸,對數損失, adaboost 指數損失。
2)訓練更精準
3)沒法並行處理
調參gbdt
n_estimators: 弱學習做大迭代次數
learing_rate: 權重縮減係數,也稱作步長。)
subsample: 子取樣,不放回抽樣,防止過擬合。不能太小,負責偏差大。
隨機森林是有放回抽樣
loss: 回歸選誤差函式, 分類選指數損失,或對數損失。
cart
max_feature: 最大特徵樹
2)max_depth: 決策樹最大深度,預設是3,資料多特徵多一般限制使用
3)mini_samples_split: 內部節點再劃分使用的最小樣本數。
4)mini_samples_leaf: 葉子節點最少樣本數。用於剪枝
xgboost
優化方面
1)演算法本身優化:
a. 弱分類模型選擇上,可以支援更多弱分類器。
b. 損失函式上,新增正則化項,預防過擬合
c. 演算法優化上,對誤差做二階泰勒展開,更加準備。 gbdt只做一階泰勒展開。
2)演算法執行效率
a. 每個弱分類器,建立過程並行選擇,先對所有的特徵的值進行排序分組,對分組特徵,選擇合適的分組大小,cpu快取進行讀取加速。
3) 演算法健壯性
a.缺失值特徵,列舉所有缺失值進入左子樹還是右子樹決定缺失值處理方法。
調參1)booster: 預設是gbtree cart,gblinear
2)e_estimators : 弱分類器個數
3)objective 分類,還是損失,以及對應的損失函式。
Boosting演算法學習
1 提公升演算法 boosting 是常用的有效的統計學習演算法,屬於迭代演算法,它通過不斷地使用乙個弱學習器彌補前乙個弱學習器的 不足 的過程,來序列地構造乙個較強的學習器,這個強學習器能夠使目標函式值足夠小。2 bagging也是一種常用的統計學習方法,兩者經常放在一起對比,它們不同的是,bag...
Boosting演算法概念解析
根據所給演算法描述,好像只能同質 整合。adaboost是一種迭代演算法,其核心思想是針對同乙個訓練集訓練不同的分類器 弱分類器 然後把這 adaboost 些弱分類器集合起來,構成乙個更強的最終分類器 強分類器 其演算法本身是通過改變資料分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以...
Boosting演算法和Adaboost演算法的關係
1990年,schapire就首先構造出一種多項式級的演算法,將弱學習演算法提公升為強學習演算法,就是最初的boosting演算法。boosting意思為提公升 加強,現在一般指將弱學習提公升為強學習的一類演算法。級聯分類器就是將多個強分類器連線在一起進行操作,每乙個強分類器都由若干個弱分類器加權組...