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)