1.简介
随机森林的基本原理决策树算法很容易出现过拟合的现象,随机森林是把不同的几棵树打包到一起,每个数的参数都不同。
在随机森林构建完成之后,每棵决策树都会单独进行预测。
如果是用来进行回归分析的话,随机森林会把所有决策树预测的值取平均数。
如果是用来进行分类的话,在森林内部会进行“投票”,每棵树预测出数据类别的概率,比如其中一个树认为“这瓶酒80%属于class_1”,另外一棵树认为“这瓶酒60%属于class_2”,随机森林会把这些概率取平均值,然后把样本放入概率最高的分类中。
随机森林的优点 1.训练速度快,支持并行处理通过调节随机森林的n_jobs参数,将n_jobs参数数值设为和CPU内核数一致,如果不知道内核数量,可以设置n_jobs=-1,此时随机森林会使用CPU的全部内核,速度极大提升。
2.随机性,防止过拟合随机森林生成每棵决策树的方法是随机的。如果不希望建模的结果太过于不稳定,一定要固化random_state这个参数的数值。
特征随机:特征子集的选择是随机的。不用做特征选择。
样本随机:训练数据集的选择是随机的。(bootstrap抽样)
随机森林的缺点对于小数据或者低维数据(特征较少的数据),可能不能产生很好的分类。(处理高维数据,处理特征遗失数据,处理不平衡数据是随机森林的长处)
2.参数
参数含义效果max_features最大特征数,默认考虑所有值越大,模型学习能学习到的信息越多,越容易过拟合max_depth最大深度,默认为不限制值越大,决策树越复杂,越容易过拟合min_samples_leaf叶子节点最少样本数,默认是1值越大,叶子节点越容易被被剪枝,决策树越简单,越不容易过拟合min_weight_fraction_leaf叶子节点最小的样本权重和,默认是0一般来说,如果我们有较多样本有缺失值,或者分类树样本的分布类别偏差很大,就会引入样本权重max_leaf_nodes最大叶子节点数,默认是不限制如果特征不多,可以不考虑这个值,但是如果特征分成多的话,可以加以限制,具体的值可以通过交叉验证得到。min_impurity_split节点划分最小不纯度这个值限制了决策树的增长,如果某节点的不纯度(基于基尼系数,均方差)小于这个阈值,则该节点不再生成子节点。即为叶子节点 。一般不推荐改动随机森林主要的参数有n_estimators(子树的数量)、max_depth(树的最大生长深度)、min_samples_leaf(叶子的最小样本数量)、min_samples_split(分支节点的最小样本数量)、max_features(最大选择特征数)。它们对随机森林模型复杂度的影响如下图所示: