6

集成学习是特定分类器的许多实例的示例,例如决策树分类器;还是混合了几个分类器,如神经网络、决策树、SVM 等?

我已经查看了这个维基百科Bagging一个集成学习器的描述。它说:

Bagging 导致“不稳定程序的改进”(Breiman,1996),其中包括例如神经网络、分类和回归树,以及线性回归中的子集选择(Breiman,1994)。

我对这个描述有点困惑。我还研究了 MATLAB 的集成算法实现。比如这个:

load fisheriris
ens = fitensemble(meas,species,'AdaBoostM2',100,'Tree')

meas并且speciesfitensemble函数的输入。在此示例中,它使用AdaBoostM2类型的弱学习器Tree并正在使用100它们。如何处理这个函数的这个简单实例,以表明集成学习用于将不同的分类器组合Neural Net, KNN, Naive Bayes在一起?

任何人都可以解释什么是集成学习以及 MATLAB 在其fitensemble功能实现中试图做什么?

4

1 回答 1

12

集成学习的基本思想是结合多个模型来提高预测性能。它们被认为是设计用于在现有学习算法之上工作的元算法。有多种方法:

  • Bagging(代表B ootstrap Agg regation )生成一组模型,每个模型都在数据的随机采样上进行训练(引导 重采样:带替换的样本 N 个实例)。来自这些模型的预测被组合/聚合以使用平均产生最终预测。

  • 随机子空间:想法是随机化学习算法,例如在应用训练算法之前随机选择特征子集(例如考虑随机森林)。每个模型都在投影到随机选择的子空间上的数据上进行训练。然后组合模型的输出,通常通过简单的多数投票。

  • Boosting:也建立在投票/平均多个模型的概念之上,但是它根据模型的性能对模型进行加权。它以迭代方式构建模型,鼓励新模型成为早期模型错误分类实例的“专家”。如果基础学习算法不太复杂(弱学习器),则提升效果最好。该算法有几种变体(AdaBoostLogitBoost、GentleBoost、LPBoost等)。

  • Stacking:结合多个基础学习器(通常是不同类型:kNN、ANN、SVM 等)的预测,不像以前那样使用投票,而是使用元学习器(在基础模型的输出上训练的模型) . 因此,基学习器的预测作为输入数据被馈送到下一层的元学习器以产生最终预测。


fitensemble是一个 MATLAB 函数,用于为分类和回归构建集成学习器。它支持三种方法:bagging、boosting 和 subspace。您可以在三种可用的弱学习器之间进行选择:决策树(实际上是决策树桩)、判别分析(线性二次)或k 最近邻分类器。

注意:除了Subspacemethod 之外,所有的 boosting 和 bagging 算法都是基于树学习器的。子空间可以使用判别分析k-最近邻学习器。

例如,以下代码使用适合于具有相应类的训练数据集的AdaBoost方法训练决策树集成分类器(由 100 棵树组成)。XY

ens = fitensemble(X, Y, 'AdaBoostM1', 100, 'Tree')

M1部分表示二元分类器,多类问题有扩展M2版)

于 2014-06-02T03:55:07.720 回答