携手创作,共同成长!这是我参与「掘金日新计划 · 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进行预测,返回每棵树预测的叶子节点。所以结果应该是二维矩阵, 行为样本第几个样本,列为每棵树预测的叶子节点。