随机森林
是一个集成算法,以决策树为基分类器或者回归模型,采用n棵决策树进行训练集成。
参数
n_estimator最重要的参数,基分类器的数量。
criterion 不纯度的衡量指标 分别为基尼指数和信息熵 gini 和 entropy
max_depth 树的最大深度 超过最大深度会被剪枝
min_samples_leaf一个节点在分支后至少包含min_samples_leaf个训练样本,否则不会分支,也就是分支后的节点要有min_samples_leaf个节点才会存在 默认值为1
min_samples_split一个节点要有min_samples_split个节点才能继续分支
max_features限制分支时考虑的特征个数,超过特征个数的特征会被舍弃(一般少用)
min_impurity_decrease限制不纯度的大小,不纯度小于设定数值的分支不会发生
随机森林的集成算法boostrap
oob_score_
袋外数据占总数据集的1/e
可以作为测试集进行验证 模型超参数oob_score = True
查看袋外数据测试的分数
rf.oob_score_
重要属性和接口
.estimators_
返回所有基分类器的集合
.oob_estimators
采用袋外数据的测试集进行测试的分数
.feature_importances
返回各个特征的重要程度
接口
apply
返回各个叶子节点的索引
fit
predict
score 的分数为R^2
三个接口
R^2 = 1 - u/v
u 是残差平方和
v是全平方和
偏差:模型的预测值与真实值之间的差异,即每一个红点到蓝线的距离。在集成算法中,每个基评估器都会有
自己的偏差,集成评估器的偏差是所有基评估器偏差的均值。模型越精确,偏差越低。
方差:反映的是模型每一次输出结果与模型预测值的平均水平之间的误差,即每一个红点到红色虚线的距离,
衡量模型的稳定性。模型越稳定,方差越低。
总结
无论如何线调参n_estimators
调参可以用学习曲线或者网络搜索
最后可以尝试 criterion和max_features
Bagging和Boosting的比较