前言:本文的目的是記錄sklearn包中GBRT的使用,主要是官網各參數的意義;對於理論部分和實際的使用希望在只是給出出處,希望之后有時間能補充完整
摘要:
1.示例
2.模型主要參數
3.模型主要屬性變量
內容:
1.示例
>>> import numpy as np
>>> from sklearn.metrics import mean_squared_error
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.ensemble import GradientBoostingRegressor
>>> X, y = make_friedman1(n_samples=1200, random_state=0, noise=1.0)
>>> X_train, X_test = X[:200], X[200:]
>>> y_train, y_test = y[:200], y[200:]
>>> est = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1,
... max_depth=1, random_state=0, loss='ls').fit(X_train, y_train)
>>> mean_squared_error(y_test, est.predict(X_test))
5.00...
2.模型主要參數
2.1 n_estimators : int (default=100)
梯度提升的迭代次數,也是弱分類器的個數
2.2 loss : {‘ls’, ‘lad’, ‘huber’, ‘quantile’}, optional (default=’ls’)
損失函數
2.3 learning_rate : float, optional (default=0.1)
SGB(隨機梯度提升)的步長,也叫學習速度,一般情況下learning_rate越低,n_estimators越大;
經驗表明learning_rate越小,測試誤差越小;具體的值參看http://scikit-learn.org/stable/modules/ensemble.html#Regularization
2.4 max_depth : integer, optional (default=3)
決策樹樁(Decision Stump)的最大深度,預剪枝操作(這里的樹深度不包括樹根)
2.5 warm_start : bool, default: False
如果True,會存儲之前的擬合結果,以供增加迭代次數
3.模型主要屬性變量
3.1 train_score_ : array, shape = [n_estimators]
存儲每次迭代的訓練誤差
3.2 feature_importances_ : array, shape = [n_features]
特征重要性,具體參照:http://scikit-learn.org/stable/modules/ensemble.html#random-forest-feature-importance