簡單看了一下sklearn中的gbdt源碼
在這裏記錄一下,目前來講還不能把gbdt的全部理論都搞清楚
sklearn有兩個相似於gbdt的實現函數
GradientBoostingClassifier GradientBoostingRegressor
一個用於分類,另外一個用於迴歸
這兩個類其實區別只在於mixin上,下面是類繼承關係code
GradientBoostingRegressor繼承了 BaseGradientBoosting RegressorMixin GradientBoostingClassifier繼承了 BaseGradientBoosting ClassifierMixin ClassifierMixin和RgressorMixin的區別: classifierMixin使用的是準確率來計算偏差 而回歸的是使用r_square來計算偏差 實際上這兩個模型的差距是很小的,就是計算一下擬合度
而後是整個訓練的過程
訓練的過程會先設置一些參數
設置n_estimators是要訓練的分類器數據
若是損失函數是loss的話,那麼就比較簡單了
每次訓練弱分類器都會根據上一次的結果來
上次生成的y - y_pred會做爲新的y傳進去
這樣來訓練直到n_estimators足夠繼承
不過在predict結果的時候有點看不懂代碼
後面看了再補充源碼