问题1:什么是集成学习?有那些典型集成学习算法?
0 1387
0
该提问暂无详细描述
收藏
2021-01-17 20:36 更新 空心人 •  3374
共 1 个回答
高赞 时间
0

集成学习通过构建并结合多个学习器来完成学习任务,有时候也被称为多分类器系统,基于委员会的学习。 集成学习的一般结合狗:先产生一组“个体学习器”,再利用某种策略将他们结合起来,个体学习器通常由一个现有的学习算法训练数据产生,例如C4.5决策树算法、BP神经网络算法等,此时集成中只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,这样的集成是同质集成。同质集成中的个体学习器亦称为“基学习器”,相应的算法称为基学习算法。 集成也可以包含不同类型的个体学习器,例如同时包含决策树和神经网络,这样的集成是“异质”的。异质集成中的个体学习器由不同的学习算法生成,这是就不再有基学习算法;相应的,个体学习器也被称为“组件学习器”。 集成学习通过将多个学校进行组合,常可以获得比单一学习器更加显著优越的泛化性能。这对“弱学习器”尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的,而基学器有时也被称为弱学习器。 集成学习主要有并行和串行两种策略 Boosting:穿行算法 Boosting是一族可以将弱学习器提升为强学习器的算法。这族算法的工作机制类似:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本进行调整,使得先前基学习器做错的训练样本在后续训练中获得更多的关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。 Boosting家族中最为著名的是Adaboost算法,它是基学习器的线性组合,目标是最小化指数损失函数。 步骤为: 将最小错误率minError设为+inf 对数据集中的每一个特征(第一层循环): 对每个步长(第二层循环): 对每个不等号(第三层循环): 建立一棵单层决策树并利用加权数据集对它进行测试 如果错误率低于minError,则将当前单层决策树设为最佳单层决策树 返回最佳单层决策树 Bagging:并行算法 在进行训练时,先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过m次随机采样操作,我们可以得到含有m个样本的采样集,初始训练集中有的样本在采样集中多次出现,有的则未出现。 Bagging算法可以让我们从不同角度看待数据集,能够解决过拟合的问题。 Bagging算法中比较有代表性的算法就是随机森林,它是通过将多个决策树集成实现的算法。 在随机森林中,对于基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性引入的程度。 其伪代码实现如下图所示:

收藏
2021-01-17 20:39 更新 小眼的铁板烧 •  3524