機器學習篇 boosting

2021-08-18 18:00:58 字數 1035 閱讀 7739

boosting是ensemble整合方法之一,

引入函式空間概念,使用損失函式的導數,採用迭代思想優化弱分類器

1、模型

加法模型,即基分類器組合(一般為決策樹)、可分類可回歸、判別模型

2、策略

引入前向分步演算法,讓加法模型中每一輪增加的部分由該輪的決策樹決定

分類問題時,最小化指數損失函式,即是adaboost演算法

回歸問題時,最小化自定義的損失函式,每一輪對殘差構造回歸樹,當殘差用梯度下降法更新時,即是gbdt演算法,當殘差用牛頓法更新時,即是xgboost演算法。

3、演算法

每一輪之間是由前向分步演算法連線的

每一輪中,擬合物件由梯度下降法和牛頓法得到,樹的構造可用貪心法

gbdt和xgboost只是擬合物件(可以理解為殘差)不同,前者用梯度下降法,後者用牛頓法,故後者收斂速度較快。除此之外,二者基本無差別,均可對樹的複雜度正則化,進行剪枝操作,列抽樣(特徵抽樣),行抽樣(樣本抽樣,相當於批梯度下降法),個人認為xgboost也可以用一般決策樹進行擬合。

當然如果是面試的話,可以這樣說:

gbdt演算法是優化經驗損失函式,通過迭代反覆擬合損失函式的負梯度並利用線性搜尋法來生成最優的弱學習器。而xgboost 演算法是通過優化結構化損失函式(加入了正則項的損失函式,可以起到降低過擬合的風險)來實現弱學習器的生成,並且xgboost演算法沒有採用上述搜尋方法,而是直接利用了損失函式的一階導數和二階導數值最大化損失減小值作為**條件,生成每一輪的樹,並通過預排序、加權分位數、稀疏矩陣識別以及快取識別等技術來大大提高了演算法效能

4、分類與回歸

回歸問題好理解,梯度累加即可

分類問題,採用一對多策略,對每個類別訓練m個分類器,假設有k個類別,那麼訓練完之後總共有m*k顆樹

5、適用場景及優缺點

傳統機器學習演算法中最完美的演算法,kaggle最常用演算法,等我看到別人總結的缺點時再寫,,

6、參考

整合學習之Boosting

boosting是整合演算法之一,通過整合多個弱分類器,從而形成乙個強分類器。任一弱學習演算法可以通過加強提公升到乙個任意正確率的強學習演算法,並通過構造一種多項式級的演算法來實現這一加強過程,這就是最初的boosting演算法的原型。boosting是一種將弱分類器通過某種方式結合起來得到乙個分類...

Boosting演算法學習

1 提公升演算法 boosting 是常用的有效的統計學習演算法,屬於迭代演算法,它通過不斷地使用乙個弱學習器彌補前乙個弱學習器的 不足 的過程,來序列地構造乙個較強的學習器,這個強學習器能夠使目標函式值足夠小。2 bagging也是一種常用的統計學習方法,兩者經常放在一起對比,它們不同的是,bag...

Python機器學習篇

四年前,因為自己看了鋼鐵俠的系列電腦,開始真正的接觸ai,還記的那時候觸控夢想的激動的心情,想了很久不知道未來是什麼樣的,自己也不知道真正做什麼好,到底適合做什麼,可是我很明白四年前做的那個決定,可以讓自己保持興奮和有意義的事情。其實我知道的我可能做不到我想要的,就算在這麼努力也不可能,但是我即使做...