Bagging算法应用-额外树

128 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

再添加一个随机化步骤,就会得到非常随机的树,或者称为额外树。虽然与普通的随机森林类似,它们都是由单独的树木组成的整体,但却也有着两个主要的区别:

首先,使用整个的学习样本(而不是自举样本)对每棵树进行训练,其次,树学习器中自上而下的分裂是随机的。不需要为每个所考虑的特征计算局部最优割点(基于基尼系数),而是选择一个随机的切割点。该值从特征值的经验范围内(在树的训练集中)的均匀分布中选择。然后,在所有随机生成的分割中,选择产生最高分的分割来分割节点。与普通随机森林相似,可以指定在每个节点上要考虑的特征随机选择的数量。该参数的默认值用于分类,n用于回归,其中n为模型中特征的个数。

随机森林的Sklearn实现属性解释

属性:

属性:

estimators_:分类决策树列表        

拟合好的子估计器集合

classes_:array of shape = [n_classes]或此类数组的列表

类标签(单输出问题)或类标签数组列表(多输出问题)。

n_classes_:int or list 

类的数量(单个输出问题),或包含每个输出的类的数量的列表(多个输出问题)。      

n_features:int        

拟合过程中使用的特征的数量     

n_outputs:int         

拟合过程中输出的数量     

featrue_importances_: array of shape = [n_features]

返回特征重要性,值越大,说明越重要     

oob_score:array of shape = [n_features]        

使用袋外估计获得的训练数据集的得分。 默认识False。最好设置为True,因为袋外分数反应了一个模型拟合后的泛化能力。

oob_decision_funtion_:array of shape = [n_features, n_classes]

在训练集上使用包外估计计算决策函数。如果n_estimators很小,那么在随机抽样过程中可能不会遗漏一个数据点。在这种情况下,oob决策函数可能包含NaN。

 

方法:    

apply(X):用构造好的森林中的树对数据集X进行预测,返回每棵树预测的叶子节点。所以结果应该是二维矩阵, 行为样本第几个样本,列为每棵树预测的叶子节点。