机器学习算法 | 随机森林

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(最大选择特征数)。它们对随机森林模型复杂度的影响如下图所示:
机器学习算法 | 随机森林_第1张图片

你可能感兴趣的:(Python机器学习,机器学习,python)