集成学习(Ensemble Learning)

来源:互联网 发布:人工智能用什么语言写 编辑:程序博客网 时间:2024/05/22 17:30

集成学习(Ensemble Learning)

  • 集成学习Ensemble Learning
  • 核心概念
  • 组合多个学习器提升学习效果的思路
  • 具体的算法

核心概念

在机器学习领域,我们经常使用一些算法对数据进行训练,得出决策模型(学习器),不同的方法得出的结论有好有坏,所以我们就思考能不能结合几个比较好的学习方法,从而得到更好的训练效果呢。

集成学习就是这样一种思想,主要是组合多个效果好但有差异的学习器来提升学习效果。所以也称为多分类器系统。

其中,每一个个体学习器(Individual Learner)是使用简单的学习算法对数据训练产生的,如决策树算法、神经网络算法等。

  • 同质(homogeneous)集成:所有的个体学习器由同一种学习算法生成,所以,其学习器也称为基学习器(Base Learner),其个体算法称为基学习算法(Base Learning Algorithm)
  • 异质(heterogeneous)集成:所有的个体学习器由不同学习算法生成,所以,其学习器也称为组件学习器(Component Learner)

个体学习器如果是弱学习器,多个学习器组合后效果提升格外明显。所以,通常把个体学习器直接称作了弱学习器。
PS:弱学习器是指找出隐藏在数据背后的规律的能力(泛化性能),比瞎猜好一丢丢,正确率高于50%,可以直接理解为学习能力比较弱。

组合多个学习器提升学习效果的思路

从经验上讲,把好的学习器和不好的学习器组合在一起,效果肯定次于最好的学习器,又强于最差的学习器,那么为什么组合后能达到性能的提升呢?

举个例子,使用多种分类算法对数据进行分类。下面表格中,YES表示正确分类,NO表示分类错误。

- 数据1 数据2 数据3 算法1 YES YES NO 算法2 NO YES YES 算法3 YES NO YES 集成 YES YES YES

可以看到,表格中集成就是少数服从多数的策略,也就是投票法(voting)产生最终的分类结果。单独看每个分类器,精度只有2/3,但是集成后精度达到100%.

从上面表格也可以看出,对于单个学习器是有要求的。他们必须本身有比较好的分类效果,同时效果还要有所不同。都把一个数据分类错误了,那投票也没用。这就是要求分类器好而不同

假设基分类器的错误率相互独立,根据Hoeffding不等式,随着个体分类器越多,集成分类的错误率就越小。但是误差独立却比较难,因为通常学习器是从同一个问题训练出来的,那么他们就不是独立的。如果做到学习器的准确性和多样性并存是一个研究的点。

具体的算法

随着发展,不一定都通过投票法产生集成学习器,也有通过梯度提升(Gradient Boosting)等方式的。

根据个体学习器的生成方式分类

  • 个体学习器强依赖、必须串行生成的序列化方法:Boosting, AdaBoost,GBDT(XGBoost,LightGBM).
  • 个体学习器不依赖、可同时生成的并行化方法:Bagging,随机森林(Random Forest).
原创粉丝点击