随机森林
博主记忆力较差,主要目的是以后忘了的时候可以不用去网上找各种资料,内容有从其他地方摘录,也有自己总结,转载请注明出处
Bagging算法
给定一个大小为 n的训练集 D,Bagging算法从中均匀、有放回地选出m个大小为 n’ 的子集 Di ,作为新的训练集。在这m个训练集上使用分类、回归等算法,则可得到 m个模型,再通过取平均值、取多数票等方法,即可得到Bagging的结果。 (通过降低结果的方差,避免过拟合的发生)
随机森林的集成学习方法是bagging ,但是和bagging 不同的是bagging只使用bootstrap有放回的采样样本,但随机森林即随机采样样本,也随机选择特征,因此防止过拟合能力更强,降低方差。
随机森林的树可以是分类树,也可以是回归树
算法
- 用N来表示训练用例(样本)的个数,M表示特征数目。
- 输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M。
- 从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。
- 对于每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m个特征,计算其最佳的分裂方式。(不是每棵树随机选m个不子特征。而是每个节点都会随机选择m个特征)
- 每棵树都会完整成长而不会剪枝(Pruning,这有可能在建完一棵正常树状分类器后会被采用)。
优点
- 随机森林对于高维数据集的处理能力很好,并且不用做特征选择
- 能够在训练过程中检测到特征之间的相互影响
- 能够检测特征的重要性程度
- 泛化性能优越,不会出现过度拟合;
- 高度并行化,易于分布式实现