泛統計理論初探 初探XGBoost方法

2021-10-24 01:45:01 字數 1497 閱讀 6456

初探xgboost方法

在本文中將會繼續介紹整合學習裡的boosting思路,並且會選用xgboost方法來介紹。xgboost是一種優化過的提公升學習方法,該方法在一些競賽或者專案中經常被使用,它的**正確率是比較高的,總體來說效能不錯。其實從該方法的名字我們可以發現,這是一種在gbdt方法的基礎上進行優化的方法,該方法可以直接用作**或者和其他機器學習演算法一起進行**。

我們如何理解xgboost的思路,其實就是在gbdt的基礎上,修改了損失函式的表示式,因為xgboost本質上內部也是由一些cart樹按順序排列,每次都是當前的cart樹去學習之前樹的殘差的,但是在損失函式的定義上,xgboost並不是簡單將各個cart樹的損失函式進行疊加,而是在這個基礎上加上了引數的二階正則項,通過約束引數來達到更強的穩健性;與此同時,在損失函式的內部,與傳統的一階泰勒展開近似方法不同的是,xgboost使用的是二階泰勒展開近似,這種近似是更加消耗計算機資源的,但是顯然會使得**結果更加準確。所以xgboost方法某種程度上是通過空間和時間換取模型的準確率,從而提公升模型的**效果。

對於xgboost方法的處理步驟其實就是三個步驟,在這裡簡單進行說明:

1)初始化相關的引數,包括樹的個數、深度等引數,這個和之前gbdt的初始化基本相同。

2)開始反覆迭代地新增cart樹,和gbdt一樣進行特徵的**後生成新的cart樹,並且這個新的cart樹是去擬合之前所有樹的**值和準確值的殘差的,我們可以很明顯地發現,當前這個步驟和gbdt是完全一樣的。

3)通過得到的n棵cart樹來進行樣本的打分,將每個樣本的特徵代入每一棵樹後落到的葉子節點,每棵樹的那個葉子節點就是乙個分數,代入n個這樣的樹後得到n個分數,將n個分數進行彙總後得到這個樣本的**值。

其實xgboost在前面兩個步驟和gbdt是一樣的,在第三個步驟計算分數是和gbdt有所不同的,當然最大的區別還是在損失函式的公式,我們見下圖的損失函式公式:

根據公式我們發現,在中括號裡面就是之前說的二階泰勒展開,通過這個平方項可以將**變得更加準確,當然後面還有高階無窮小的項被省略了。與此同時,在中括號的外面加了正則項,正則項是由葉子節點數量t和每棵樹的葉子節點組成的集合w所構成的,通過正則項來對樹進行約束防止過擬合。

對於xgboost模型來說,它的優點其實比較多,在此處說三點:

1)對損失函式使用了二階泰勒展開使得**更精準、使用了正則項約束使得模型更加穩健並且泛化性更好。

2)xgboost不僅僅支援傳統的cart樹,還支援其他的線性分類器,因為這個模型其實是更像一種策略,模型的通用性更強。

3)xgboost模型的實現方式是可以使用並行的,和傳統的boosting學習策略不同,xgboost模型的工具包將最耗時的特徵排序進行並行化處理,加快模型訓練的時間。

當然對於該模型來說,當資料量較為龐大的時候訓練時間依舊是比較慢的,後續還可以繼續優化,所以有了lightgbm模型。總的來說,xgboost模型是乙個較為穩健並且準確率很好的模型,初學者在學習這個模型的時候需要先了解boosting整合學習的思路和gbdt的原理,然後在這個基礎上進行優化後才有了xgboost模型,在使用的時候需要明白該模型的原理和實現步驟。

泛統計理論初探 均值漂移演算法初探

均值漂移聚類演算法簡介 本文主要是介紹均值漂移聚類演算法,又稱為mean shift cluster,該演算法屬於無監督學習的聚類方法。主要從演算法的使用場景 步驟 核心思路等角度去介紹演算法。之前其實也介紹過一些聚類的演算法,比如kmeans dbscan等方法,本次介紹的均值漂移聚類演算法是一種...

泛統計理論初探 初探遺傳演算法

遺傳演算法理解與思路 本文將會簡要的介紹遺傳演算法,該方法也是一種啟發式搜尋的演算法,它是 於生物學進化規律的經典概念,就是適者生存 優勝劣汰的思路。該演算法是上個世紀70年代被提出的,它不需要像神經網路之類的方法需要對函式的連續性有要求,而是可以使用基於概率的思路去進行搜尋,結合遺傳 變異 選擇的...

泛統計理論初探 初探MCMC取樣和MH取樣

初探mcmc取樣方法和mh取樣方法 在之前介紹的文章中,我們介紹了基本的取樣方法。在了解簡單的取樣方法後,本次文章將會介紹mcmc取樣方法與優化的mh取樣方法,這兩種方法對於一些高維度特徵的資料可以進行比較合理的取樣。mcmc取樣方法其實就是蒙特卡洛馬爾科夫鏈的取樣方法,因為這兩個術語的英文簡寫都是...