algorithm - 了解集成学习及其在 Matlab 中的实现

标签 algorithm matlab machine-learning decision-tree ensemble-learning

ensemble learning特定分类器的许多实例的示例,例如决策树分类器;或者它是神经网络、决策树、SVM 等几个分类器的混合体?

我已经调查过这个wikipedia's Bagging 集成学习器的描述。它说:

Bagging leads to "improvements for unstable procedures" (Breiman, 1996), which include, for example, neural nets, classification and regression trees, and subset selection in linear regression (Breiman, 1994).

我对这个描述有点困惑。我也研究了 MATLAB 的 implementation的集成算法。例如这个:

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

measspeciesfitensemble 的输入功能。在此示例中,它使用 AdaBoostM2 类型为 Tree 的弱学习器,并使用了其中的 100。如何解决此函数的这个简单实例,以表明集成学习用于将不同的分类器(例如 Neural Net、KNN、Naive Bayes)组合在一起?

谁能解释一下什么是集成学习,以及 MATLAB 在实现 fitensemble 函数时试图做什么?

最佳答案

ensemble learning的基本思路|是将多个模型组合起来以提高预测性能。它们被认为是元算法,旨在在现有学习算法之上工作。有多种方法:

  • Bagging (代表 Bootstrap Aggregation)生成一组模型,每个模型都根据数据的随机抽样进行训练(bootstrap resampling:样本 N 个实例并进行替换) .来自这些模型的预测被组合/聚合以使用平均产生最终预测。

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

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

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


fitensemble是用于构建 ensemble learner 的 MATLAB 函数用于分类和回归。它支持三种方法:bagging、boosting和subspace。您可以在三种可用的弱学习器之间进行选择:decision tree ( decision stump 真的),判别分析(linearquadratic ),或 k-nearest neighbor分类器。

Note: Except for Subspace method, all boosting and bagging algorithms are based on tree learners. Subspace can use either discriminant analysis or k-nearest neighbor learners.

例如,以下代码使用 AdaBoost 训练一个决策树集成 分类器(由 100 棵树组成)方法适用于训练数据集 X 和相应的类 Y

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

(M1部分表示二元分类器,多类问题有一个扩展的M2版本)

关于algorithm - 了解集成学习及其在 Matlab 中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23814126/

相关文章:

matlab - 使用 MATLAB 进行滚动窗口求平均值

python - SciKit Learn 中的多类逻辑回归

python - 根据标签关联图像的最佳方法

algorithm - 有没有一种有效的算法可以做到这一点?

python - 如何过滤包含唯一数字的数字?

Matlab - 直接绘图到 .ps 文件

matlab - 如何沿着数组的某个维度进行操作?

algorithm - Prim 的 Treaps 算法

algorithm - 使用A星算法时如何处理close list

machine-learning - 反向传播的阈值