天天看点

scikit-learn中的随机森林模型

和决策树模型类似,scikit-learn中的随机森林模型也提供了基于普通Decision Tree的Random Forest学习器和基于随机化Extra Tree的ExtraTrees学习器。

scikit-learn中的随机森林模型

鉴于Decision Tree和Extra Tree差别甚小,本文以Random Forest为例进行介绍。

1. 模型的主要参数

在Random Forest中,存在两大类型的参数,分别为框架参数和单棵决策树参数

其中,单棵决策树参数参照先前介绍的决策树模型,而框架参数包括:

模型参数 Parameter含义 RandomForestClassifier RandomForestRegressor
n_estimators 子树数量 随机森林中决策树的数量,其值越大模型的表现越优秀,但计算量也越大
bootstrap 有无放回采样 默认为True,即采用有放回式采样,从而可以不划分验证集,用这些袋外数据进行验证(见参数oob_score)。而在Extratrees中该值默认为False,即选取全量样本进行训练。
oob_score 袋外评分 即是否采用袋外数据进行模型的验证评估,默认为True。

2. 模型的主要方法

随机森林模型中涉及到众多子决策树的综合评估,所以其无法像普通Decision Tree模型一样提供

apply

方法API。

模型方法 含义 备注
fit 模型训练 支持Decison Tree中的sample_weight参数
predict 预测结果 返回综合各子决策树结果后的分类值或者回归值,分类值为比重最高的分类,回归值为叶子节点均值的平均值
predict_proba 分类预测概率值 仅在classifier中有该方法,返回各分类的概率值
predict_log_proba 分类预测对数值 仅在classifier中有该方法,返回各分类的对数概率值

3. 模型的主要属性

模型属性 含义 备注
estimators_ 估计器列表 返回由n_estimators个子决策树构成的列表
classes_ 样本分类结果 适用于classifer的单分类结果,返回各样本的分类预测值
n_classes_ 样本分类结果 适用于classifer的多分类结果,返回各样本的多分类预测值
feature_importances_ 特征权重 基于gini数得到各特征的特征重要性
oob_score_ 含义 袋外数据的总的评估结果
oob_decision_function_ 含义 每个袋外数据的评估结果

注意,相较于单棵决策树的feature_importances_,随机森林模型中的feature_importances_是对各子决策树结果的平均。

4. 模型的可视化

不同于单棵决策树可以进行有效的可视化,随机森林模型由于子学习器众多,因此无法进行有效的可视化。即使可以对其中的每棵决策树进行单独的可视化,但考虑到随机性的影响,意义并不大。

5. 模型的调参

(1)调整n_estimators参数

(2)按照决策树模型的调参顺序进行调整,详见决策树模型。

继续阅读