人工智障 XGBoost簡介

2021-08-21 09:51:36 字數 808 閱讀 3176

xgboost是專注於梯度提公升演算法的機器學習函式庫,此函式庫速度快,且學習效果優良。

1,gbdt演算法原理

xgboost實現的是一種通用的tree boosting演算法,此演算法的乙個代表為gbdt(梯度提公升決策樹)。gbdt原理首先利用訓練集和樣本真正值訓練一棵樹,然後使用這棵樹**訓練集,得到每個樣本的**值,由於**值與真值存在偏差,所以二者相減可以得到殘差,接下來訓練第二棵樹,此時不使用真值,而是使用殘差作為標準答案。兩棵樹訓練完成後,可以再次得到每個樣本的殘差,訓練第三棵樹,樹的總棵樹可以通過監控某些指標來停止訓練。**新樣本的時候,每棵樹都會有乙個輸出值,將這些輸出值相加,皆可以得到最終**值。

2,xgboost的改進

2.1 損失函式從平方損失推廣到二階可導損失

gbdt的核心是在於後面的樹是擬合的前面**值的殘差,這樣可以一步步逼近真實值。xgboost的方法是,將損失函式做泰勒展開到二階,使用前兩階作為改進殘差,可以證明,傳統gbdt使用的殘差是泰勒展開到一階的結果。

2.2 加入了正則化項

正則化方法是數學中用來解決不適定問題的一種方法,正則化是為了限制模型的複雜度,模型越複雜,越有可能記住訓練資料,導致訓練誤差達到很低,而測試誤差很高,也就是發生了過擬合。

2.3支援列抽樣

列抽樣是指訓練每棵樹的時候,不是使用所有特徵,而是從中抽取一部分來訓練這棵樹。這種方法是用在隨機森林中

3, xgboost執行這麼快

3.1 連續性特徵的處理

決策樹在訓練時進行分叉,對於連續性特徵,列舉所有可能分叉點將會十分耗時

3.2 利用資料稀疏性

對離散特徵做one-hot處理,

人工智障三子棋

三子棋原理比較簡單,類似於我們常玩的五子棋,但是只要三個相同符號連在一起就可以獲得勝利,由於只有9個位置,所以先手下的人有很大機率獲得勝利,下面的 就是以自己先手和電腦進行下三子棋,由於比較簡易嘛,電腦就採用的是隨機數的方式進行下棋,如下 define crt secure no warnings ...

python機器學習 xgboost簡介

boosting 分類器屬於整合學習模型,它基本思想是把成百上千個分類準確率較低的樹模型組合起來,成為乙個準確率很高的模型。這個模型會不斷地迭代,每次迭代就生成一顆新的樹。對於如何在每一步生成合理的樹,大家提出了很多的方法,我們這裡簡要介紹由 friedman 提出的 gradient boosti...

人工智障學習筆記 機器學習 16 降維小結

機器學習領域中所謂的降維就是指採用某種對映方法,將原高維空間中的資料點對映到低維度的空間中。降維的本質是學習乙個對映函式 f x y,其中x是原始資料點的表達,目前最多使用向量表達形式。y是資料點對映後的低維向量表達,通常y的維度小於x的維度 當然提高維度也是可以的 f可能是顯式的或隱式的 線性的或...