pydocs
GradientBoostedRegressor
提及oob_improvement_
作为属性。
http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html
但是我在sklearn 0.18.1
中找到的是:
print '%s\n' %(repr(gbr.oob_improvement_))
{AttributeError}'GradientBoostingRegressor' object has no attribute 'oob_improvement_'
请注意其他属性,例如feature_importances_
执行出现:
print '%s' %repr(gbr.feature_importances_)
[ 0.18573911 0.02802389 0.03824209 0.4526584 0.04772151 0.03357871 0.16121998 0.01518073]
`oob_improvement``属性实际上是否可以通过其他方式访问?
答案 0 :(得分:4)
默认情况下,GradientBoostingClassifier使用所有数据来提升迭代次数。由于每个阶段都没有保留数据,因此无法获得OOB估算值。
另一种方法是在每个阶段使用训练数据的随机子样本;这种方法称为“随机梯度提升”。这样做可以减少差异并增加偏差,并使OOB估算可用。要启用它,请使用subsample
< 1.0,例如
clf = GradientBoostingClassifier(subsample=0.6)
在上面的例子中,每个基础学习者接受60%随机数据样本的培训,其余40%的训练样本用于OOB估计。
有关完整示例,请参阅http://scikit-learn.org/stable/auto_examples/ensemble/plot_gradient_boosting_oob.html。