机器学习之集成学习算法学习笔记

1.boosting方法

Boosting方法是一种将弱学习器提升为强学习器的算法。

原理:先从初始的训练集中训练处一个基学习器,在根据基学习器的表现对训练样本分布进行调整,使得当前基学习器的分类错误的样本在后续收到更多的关注,基于调整后的样本分布继续训练下一个基学习器。如此反复进行,直到所有基学习器训练完毕,最终将所有基学习器加权平均。

最著名的代表是 AdaBoost 算法。它学习过程中,对分类正确的样本降低了权重,对分类错误的样本升高权重或保持不变。

在算法中,需要对训练样本分布进行重新调整。有两种调整方式:

  1. 重新赋权法:即在训练的每一轮中,根据样本分布为每一个训练样本重新赋予一个权重。
  2. 重采样法:即在每一轮训练中,根据样本分布对训练集重新采样,利用重采样的样本进行训练。

对于无法接受带权重样本的学习算法,可以通过重采样法。但在boosting 训练中,每一轮训练后都会检查当前的学习器是否比随机猜测要好,满足保留,否则被抛弃。在这种情况下,也许学习的基学习器远远达不到预先设置的个数。
而采用重采样法,可以避免这种情况发生。重采样后如果不满足,可以再次重新采样对基学习器重新训练。
从偏差-方差的角度来看,boosting 方法主要关注于降低偏差,因为在训练过程中,不断强调那些被分类错误的样本。

2.Bagging方法

原理:基于自助采样法,从原始的样本集中采样出若干个不同的训练子集,从每一个子集中学习出不同的基学习器。
对预测输出结合时,分类任务可采取简单投票法,回归任务可采取简单平均法。
自助采样的另一个优点在于,每个基学习器只使用了大概63.2%的样本,剩下的36.8%样本完全可以用来作为验证集进行泛华性能估计。

bagging方法更关注于减小分类器的方差

3.随机森林(random forest)

随机森林是bagging方法的一个变体,它以决策树为基学习器,决策树的训练过程中引入了随机属性选择。传统决策树是在当前节点的属性集合中选择一个最优属性,而在RF中,对于每一个节点,先从属性集合中选择出包含 k 个属性的子集,再从子集中选择一个最优属性作划分。
参数 k 控制了随机性的引入程度,k = 1的话就是随机选择一个属性进行划分,等于 属性数的话就和传统决策树相同。一般,推荐 k = logk。
随机森林的基学习器的多样性不仅来自样本扰动,还来自属性的扰动,这就使得最终集成的泛华性能近一步提升。
随机森林的起始性能会比较差,因为属性的扰动。但随着学习器的数目增加,通常会降低到更低的泛华误差。

4.学习器结合的好处

  1. 从统计的角度看, 单学习器的泛华性能不佳,结合多个学习器会有效降低这个风险;
  2. 从计算上来看,学习算法往往会陷入局部最优,通过多次的学习器运行,可降低陷入局部最优的风险;
  3. 从表示的角度来看,某些学习任务的假设空间可能并不在当前学习算法的假设空间内,导致算法的效果差。而通过多个学习器的结合,相应的假设空间有所扩大,更有可能靠近真实假设。

5.常用的基学习器

最常用的基分类器是决策树,有三个原因:

  1. 决策树可以较为方便的将样本权重整合到训练中,而不需要使用重采样的方式调整样本权重(?);
  2. 决策树的表达能力和泛华能力,可以通过控制树的层数来做折中;
  3. 数据样本的扰动对决策树的影响较大,因此不同的样本子集生成的决策树随机性较大,更适合作为基分类器。

神经网络模型,也可以作为基分类器,因为神经网络的模型也相对不稳定,神经元的数量、连接方式、网络层数、初始的权值都会对模型产生很大影响。

6.随机森林中的基分类器可以换成线性分类器或者k近邻吗?

随机森林是基于bagging方法的集成学习,主要好处是降低了分类器的方差。bagging采用的基分类器最好是本身对样本分布比较敏感的,这样后续的样本分布调整才会产生比较好的效果。而线性分类器或者K-近邻属于比较稳定的学习器,本身方差就不大,所以用它们作为基分类器并不能取得很好的效果,甚至可能因为采样会加大集成分类器的偏差。

猜你喜欢

转载自blog.csdn.net/yaogepila/article/details/106752660