集成学习
个体与集成
集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统、基于委员会的学习等。
上图显示出集成学习的一般结构:先产生一组“个体学习器”,再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据产生,例如C4.5决策树算法、BP神经网络算法等,此时集成中只包含同种类型的个体学习器,称为“同质”的。同质集成中的个体学习器亦称“基学习器”,相应的学习算法称为“基学习算法”。集成也可包含不同类型的个体学习器,称为“异质”的,由于是不同算法产生的个体学习器,故不再有基学习算法,而个体学习器称为“组件学习器”。
根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在依赖关系、可同时生成的并行化方法;前者的代表是Boosting,后者的代表是Bagging和“随机森林”。
Boosting
Boosting是一族可将弱学习器提升为强学习器的算法。该工作机制类似:先从初始训练集训练出一个基学习器,再根据及学习期的表现对训练样本分布进行调整 ,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复今夕,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。
其中,最著名的莫过于AdaBoost;最容易理解的模型是基于“加性模型”,即基学习器的线性组合
其中,分类器权重更新公式为
样本分布更新公式为
Bagging与随机森林
Bagging基于自助采样法,给定包含m个样本的数据集,先随机去除一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍可能被选中,这样,经过m次随机采样操作,我们得到含有m个样本的采样集,循环反复得到T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。
Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。
随机森林
随机森林(简称RF)是Bagging的一个扩展变体。RF在以决策树为基学习器构建的Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性集合中选择一个最佳属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性的引入程度:若令k=d(假定有d个属性),则基决策树的构建与传统决策树相同;若令k=1,则是随机选择一个属性用于划分;一般情况下,推荐k=log2(d)。