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

数学建模随机森林模型 随机森林模型可视化_决策树


鉴于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)按照决策树模型的调参顺序进行调整,详见决策树模型。