Python 从sklearn GradientBoostedRegressor访问计算的偏差

Python 从sklearn GradientBoostedRegressor访问计算的偏差,python,scikit-learn,Python,Scikit Learn,GradientBoostedRegressor的pydocs将oob_改进作为一个属性 然而,我在sklearn 0.18.1中发现: print '%s\n' %(repr(gbr.oob_improvement_)) {AttributeError}'GradientBoostingRegressor' object has no attribute 'oob_improvement_' 请注意,其他属性(例如,功能重要性)确实会出现: 那么,“oob_改进”属性是否可以通过其他方

GradientBoostedRegressor
pydocs
oob_改进
作为一个属性

然而,我在
sklearn 0.18.1
中发现:

print '%s\n' %(repr(gbr.oob_improvement_))

{AttributeError}'GradientBoostingRegressor' object has no attribute 'oob_improvement_'
请注意,其他属性(例如,
功能
重要性)确实会出现:


那么,“oob_改进”属性是否可以通过其他方式访问呢?

默认情况下,GradientBoostingClassifier使用所有数据来提升迭代。由于每个阶段都没有保留的数据,因此无法获得OOB估计值

另一种方法是在每个阶段使用训练数据的随机子样本;这种方法被称为“随机梯度增强”。这样做可以减少方差和增加偏差,并使OOB估计可用。要启用它,请使用
子样本
<1.0,例如

clf = GradientBoostingClassifier(subsample=0.6)
在上面的例子中,每个基础学习者在随机60%的数据样本上进行训练,其余40%的训练样本用于OOB估计

有关完整示例,请参见

clf = GradientBoostingClassifier(subsample=0.6)