
模型介绍有一个成语叫集思广益指的是集中群众的智慧广泛吸收有益的意见。在机器学习算法中也有类似的思想被称为集成学习Ensemble learning。集成学习集成学习通过训练学习出多个估计器当需要预测时通过结合器将多个估计器的结果整合起来当作最后的结果输出。集成学习的优势是提升了单个估计器的通用性与鲁棒性比单个估计器拥有更好的预测性能。集成学习的另一个特点是能方便的进行并行化操作。Bagging算法Bagging 算法是一种集成学习算法其全称为自助聚集算法Bootstrap aggregating顾名思义算法由 Bootstrap 与 Aggregating 两部分组成。从训练集中进行子抽样组成每个基模型所需要的子训练集对所有基模型预测的结果进行综合产生最终的预测结果。为什么要随机抽样训练集如果不进行随机抽样每棵树的训练集都一样那么最终训练出的树分类结果也是完全一样的。为什么要有放回地抽样如果不是有放回的抽样那么每棵树的训练样本都是不同的都是没有交集的这样每棵树都是“有偏的”都是绝对“片面的”当然这样说可能不对也就是说每棵树训练出来都是有很大的差异的而随机森林最后分类取决于多棵树弱分类器的投票表决。随机森林算法将多个决策树结合在一起每次数据集是随机有放回的选出同时随机选出部分特征作为输入所以该算法被称为随机森林算法。可以看到随机森林算法是以决策树为估计器的Bagging算法。使用Bagging算法能降低过拟合的情况从而带来了更好的性能。单个决策树对训练集的噪声非常敏感但通过Bagging算法降低了训练出的多颗决策树之间关联性有效缓解了上述问题。算法步骤假设训练集 T 的大小为 N 特征数目为 M 随机森林的大小为 K 随机森林算法的具体步骤如下遍历随机森林的大小 K 次 从训练集 T 中有放回抽样的方式取样N 次形成一个新子训练集 D 随机选择 m 个特征其中 m M 使用新的训练集 D 和 m 个特征学习出一个完整的决策树 得到随机森林优缺点随机森林算法的优点1.对于很多种资料可以产生高准确度的分类器2.可以处理大量的输入变量3.可以在决定类别时评估变量的重要性4.在建造森林时可以在内部对于一般化后的误差产生不偏差的估计5.包含一个好方法可以估计丢失的资料并且如果有很大一部分的资料丢失仍可以维持准确度6.对于不平衡的分类资料集来说可以平衡误差7.可被延伸应用在未标记的资料上这类资料通常是使用非监督式聚类也可侦测偏离者和观看资料8.学习过程很快速随机森林算法的缺点1.牺牲了决策树的可解释性2.在某些噪音较大的分类或回归问题上会过拟合3.在多个分类变量的问题中随机森林可能无法提高基学习器的准确性