gbdt(gradient boosting decison tree):梯度提公升決策樹
gbdt 的弱學習器通常使用 cart 回歸樹
gbdt 的核心在於,每棵樹學的是之前所有樹的結論和的殘差,比如 a 的年齡 18 歲,第一棵樹依據特徵值** 12 歲,差 6 歲,即殘差為 6 歲,那麼第二棵樹把 a 的年齡 y 設為 6 歲,如果第二棵樹依據特徵值** 6 歲,那累加兩棵樹的結論就是 a 的真實年齡,如果第二棵樹的結論是 5 歲,則 a 仍存在 1 歲的殘差,第三棵樹裡 a 的年齡 y 變成 1 歲,然後繼續訓練下一棵樹
設有樣本資料 \(\normalsize (x_, y_)_^\)
第j棵樹記為 \(\normalsize h_(x)\)
則由m棵樹組成的 gbdt 輸出為
\(\large y_ = f_(x_) = f_(x_) + h_(x_) = \sum_^h_(x_)\)
注意:每棵樹都接收相同的 x 值
通常 gbdt 使用負梯度構建下一棵樹要**的 y 值,設 \(\ y_\) 是第 m 棵樹要**的值
\(\large y_ = -\frac, f_(x_))}(x_)}\)
這樣得出的 y 值也稱為偽殘差
以上的簡單例子用的是均方損失函式
\(\large l(y_, f_(x_)) = \frac(y_ - f_(x_))^\)
對應的負梯度是
\(\large y_ = -\frac, f_(x_))}(x_)}=y_ - f_(x_) = y_-\sum_^h_(x_)\)
這個偽殘差結果剛好是真殘差
給每棵樹乙個權值進行加權求和,shrinkage 能減少過擬合是經驗證明的,但沒有理論證明
\(\large y_ = f_(x_) = f_(x_) + \alpha_h_(x_) = \sum_^\alpha_h_(x_)\)
gbdt 本質是回歸問題,要用於分類需要將分類轉化為回歸
比如通過邏輯回歸函式將結果限制在 0~1 之間,代表兩種分類的概率
機器學習 整合演算法
整合演算法用一些相對較弱的學習模型獨立地就同樣的樣本進行訓練,然後把結果整合起來進行整體 整合演算法的主要難點在於究竟整合哪些獨立的較弱的學習模型以及如何把學習結果整合起來。這是一類非常強大的演算法,同時也非常流行。是構建多個學習器,然後通過一定策略結合把它們來完成學習任務的,常常可以獲得比單一學習...
機器學習python整合演算法
from pandas import read csv from sklearn.model selection import kfold from sklearn.model selection import cross val score from sklearn.ensemble import...
機器學習之整合演算法
目的 讓機器學習效果更好,單個機器學習演算法不行,就用多個機器演算法整合。bagging模型 訓練多個分類器取結果的平均 boosting模型 從弱學習器開始加強,通過加權來進行訓練 加入一棵樹,要比原來強 stacking模型 聚合多個分類或回歸模型 可以分階段來做 全稱 bootstrap ag...