携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
随机森林,简称RF算法,是将Bagging算法术应用到树学习器而形成的一种算法。与通用Bagging算法相比,它只有微小的变化,具体变化如下:
它们使用修改的树学习算法,该算法在学习过程中的每个候选分割时,随机选择特征的子集。 此过程有时称为“特征打包”。然后在‘该特征包’里选取适合的分割特征。这样做的目的是旨在消除由自助随机采样样本诱导出的树关联性。因为如果一个或几个特征自变量是响应变量的非常强的预测器,那么将在生成的K个树中的许多树中选择这些特性,从而使这些树变得相关。
使用了CART决策树作为弱学习器。
实践中,‘特征包’的大小会影响模型的泛化误差。通常通过交叉验证来选择合适的‘特征包’大小。
随机森林的优缺点:
优点:
分类器训练速度非常快:这一优势源于单个决策树的极短训练时间以及可并行化训练。
测试数据评估单独发生在每个树上,因此可以并行化,实现快速评估。
十分适合处理大型数据集(超多类、超多特征、超大数据量)。
可识别类之间的关联。
优秀的泛化能力。
简单明了的算法。
缺点:
处理噪音大的数据时容易过拟合。
未完待续
算法流程
Input: Data={(x,y1),(x2,y2),...(xm,ym)},基模型,基模型迭代次数K。
数据分割:训练集和测试集
Loop: k from 1 to K:
对训练集进行第k次返回随机采样,共采集m次,得到采样集
用采样集训练第k个基模型Base(k)
利用测试集对每一个训练后的基模型进行测试:
如果是分类算法预测,通过投票法,也即选出K个基模型预测结果中具有最多相同类标签的标签最为最终类别标签输出。
如果是回归算法,K个基模型的回归结果的算术平均值作为最终的模型输出。