演算法(RapidMiner工作室核心)
剧情简介
该操作符是AdaBoost算法的实现,它可以与RapidMiner中所有可用的学习器一起使用。AdaBoost是一个元算法,它可以与许多其他学习算法一起使用,以提高它们的性能。描述
AdaBoost操作符是一个嵌套操作符,也就是说它有一个子进程。子流程必须有一个学习者,即一个期望ExampleSet并生成模型的操作符。该算子尝试使用其子过程中提供的学习器来构建更好的模型。为了应用这个操作符,您需要对子流程有一个基本的了解。为了对子流程有基本的了解,请研究子流程操作符的文档。
AdaBoost是Adaptive Boosting的缩写,是一种元算法,可以与许多其他学习算法结合使用,以提高它们的性能。AdaBoost是自适应的,因为构建的后续分类器会进行调整,以支持那些被前一个分类器错误分类的实例。AdaBoost对噪声数据和异常值很敏感。然而,在某些问题中,它比大多数学习算法更不容易受到过拟合问题的影响。它使用的分类器可能很弱(即显示大量的错误率),但只要它们的性能不是随机的(导致二进制分类的错误率为0.5),它们将改善最终的模型。
AdaBoost在一系列的每一轮中生成并调用一个新的弱分类器t = 1,…,t.对于每个调用,权重分布D (t)更新,以指示数据集中示例对分类的重要性。在每一轮中,每个错误分类示例的权重增加,每个正确分类示例的权重减少,因此新的分类器专注于迄今为止未能正确分类的示例。
助推是一种集成方法,因此本文对集成理论进行了概述。集成方法使用多个模型,以获得比任何组成模型更好的预测性能。换句话说,集体学习是一种将许多较弱的学习者结合起来,试图产生一个较强的学习者的技术。评估一个集合的预测通常比评估一个单一模型的预测需要更多的计算,所以集合可以被认为是一种通过执行大量额外的计算来补偿糟糕的学习算法的方法。
集合本身就是一种监督学习算法,因为它可以被训练然后用来进行预测。因此,训练过的集合代表一个单一的假设。然而,这个假设并不一定包含在构建它的模型的假设空间中。因此,集成可以被证明在它们所能表示的函数中具有更大的灵活性。理论上,这种灵活性可以使它们比单一模型更能过拟合训练数据,但在实践中,一些集成技术(特别是bagging)倾向于减少与训练数据过拟合相关的问题。
从经验上讲,当模型之间存在显著的多样性时,集合往往会产生更好的结果。因此,许多集成方法试图促进它们所组合模型的多样性。虽然可能不是直观的,但更随机的算法(如随机决策树)可以用来产生比非常深思熟虑的算法(如减少熵的决策树)更强大的集合。然而,使用各种强学习算法已被证明比使用试图简化模型以促进多样性的技术更有效。
输入
- 训练集(数据表)
这个输入端口需要一个ExampleSet。它是附加的示例流程中的Retrieve操作符的输出。其他运算符的输出也可以用作输入。
输出
- 模型(Ada提高模型)
元模型从这个输出端口交付,现在可以应用于不可见的数据集,以预测标签属性。
- 榜样(数据表)
通过此端口传递作为输入的ExampleSet而不更改为输出。这通常用于在进一步的操作符中重用相同的ExampleSet,或者在结果工作区中查看ExampleSet。
参数
- 迭代该参数指定AdaBoost算法的最大迭代次数。范围:整数
教程的过程
使用AdaBoost运算符生成更好的决策树
'Sonar'数据集使用Retrieve操作符加载。应用分裂验证算子对分类模型进行训练和测试。AdaBoost操作符应用于Split Validation操作符的训练子过程中。决策树操作符应用于AdaBoost操作符的子流程中。AdaBoost操作符的迭代参数被设置为10,因此它的子流程最多有10次迭代。在测试子流程中使用Apply Model操作符来应用AdaBoost操作符生成的模型。结果标记的ExampleSet由性能(分类)操作符用于度量模型的性能。分类模型及其性能向量连接到输出,可以在Results Workspace中看到。您可以看到AdaBoost操作符在每次迭代中生成一个新模型,并且每个模型都有不同的权重。该模型的准确率在69%左右。 If the same process is repeated without AdaBoost operator i.e. only the Decision Tree operator is used in training subprocess. The accuracy of that model turns out to be around 66%. Thus AdaBoost generated a combination of models that performed better than the original model.