前言:本文的目的是记录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#Regularization2.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