装袋(RapidMiner工作室核心)
剧情简介
Bootstrap aggreging (bagging)是一种机器学习集leyu体育是真的吗成元算法,用于提高分类和回归模型的稳定性和分类精度。它还减少了方差,并有助于避免过拟合。尽管它通常应用于决策树模型,但它也可以用于任何类型的模型。描述
Bagging操作符是一个嵌套操作符,即它有一个子过程。子流程必须有一个学习者,即一个期望ExampleSet并生成模型的操作符。该算子尝试使用其子过程中提供的学习器来构建更好的模型。为了应用这个运算符,您需要对子流程有基本的了解。为了对子流程有基本的了解,请研究子流程操作符的文档。
套袋的概念(对分类进行投票,对具有连续因变量的回归型问题进行平均)适用于预测数据挖掘领域,将来自多个模型的预测分类(预测)结合起来,或将来自不同学习数据的同一类型模型的预测分类(预测)结合起来。当将复杂模型应用于相对较小的数据集时,它还用于解决结果的固有不稳定性。假设您的数据挖掘任务是为预测分类构建一个模型,用于训练模型的数据集(学习数据集,其中包含观察到的分类)相对较小。您可以从数据集中重复地进行子采样(使用替换),并对连续的样本应用树分类器(例如,CHAID)。在实践中,对于不同的样本,通常会种植非常不同的树,说明了模型的不稳定性,在小数据集中往往很明显。得出单一预测(针对新的观察结果)的一种方法是使用在不同样本中发现的所有树,并应用一些简单的投票:最终的分类是不同树最常预测的分类。注意,一些预测的加权组合(加权投票,加权平均)也是可能的,并且通常使用。为加权预测或投票生成权重的一种复杂算法是Boosting过程,它在RapidMiner中作为AdaBoost操作符可用。
Bagging是一种集成方法,因此本文对集成理论进行了概述。集成方法使用多个模型来获得比任何组成模型都更好的预测性能。换句话说,集体学习是一种将许多较弱的学习者结合起来,试图产生一个较强的学习者的技术。评估一个集合的预测通常比评估一个单一模型的预测需要更多的计算,所以集合可以被认为是一种通过执行大量额外的计算来补偿糟糕的学习算法的方法。
集合本身就是一种监督学习算法,因为它可以被训练然后用来进行预测。因此,训练过的集合代表一个单一的假设。然而,这个假设并不一定包含在构建它的模型的假设空间中。因此,集成可以被证明在它们所能表示的函数中具有更大的灵活性。理论上,这种灵活性可以使它们比单一模型更能过拟合训练数据,但在实践中,一些集成技术(特别是bagging)倾向于减少与训练数据过拟合相关的问题。
从经验上讲,当模型之间存在显著的多样性时,集合往往会产生更好的结果。因此,许多集成方法试图促进它们所组合模型的多样性。虽然可能不是直观的,但更随机的算法(如随机决策树)可以用来产生比非常深思熟虑的算法(如减少熵的决策树)更强大的集合。然而,使用各种强学习算法已被证明比使用试图简化模型以促进多样性的技术更有效。
输入
- 训练集(数据表)
这个输入端口需要一个ExampleSet。它是附加的示例流程中的Retrieve操作符的输出。其他运算符的输出也可以用作输入。
输出
- 模型(装袋模型)
元模型是从这个输出端口交付的,现在可以应用到一个不可见的数据集,以预测标签属性。
- 榜样(数据表)
通过此端口传递作为输入的ExampleSet而不更改为输出。这通常用于在进一步的操作符中重用相同的ExampleSet,或者在结果工作区中查看ExampleSet。
参数
- sample_ratio此参数指定要用于训练的示例的百分比。它的值必须大于0(即0个例子),并且应该小于或等于1(即整个数据集)。范围:真正的
- 迭代此参数指定Bagging算法的最大迭代次数。范围:整数
- average_confidences此参数指定是否平均可用的预测置信度。范围:布尔
- use_local_random_seed该参数表示a当地的随机种子应用于随机化。的相同值当地的随机种子会产生相同的样品。改变该参数的值将改变样本的随机化方式,因此样本将具有不同的值集。范围:布尔
- local_random_seed此参数指定当地的随机种子.该参数仅在使用本地随机种子参数设置为true。范围:整数
教程的过程
使用Bagging算子生成更好的决策树
'Sonar'数据集使用Retrieve操作符加载。应用分裂验证算子对分类模型进行训练和测试。将Bagging算子应用于分离验证算子的训练子过程中。将决策树算子应用于套袋算子的子过程中。Bagging运算符的迭代参数设置为10,因此它的子流程将有10次迭代。在测试子流程中使用Apply Model操作符来应用Bagging操作符生成的模型。结果标记的ExampleSet由性能(分类)操作符用于度量模型的性能。分类模型及其性能向量连接到输出,可以在Results Workspace中看到它们。您可以看到Bagging操作符在每次迭代中生成一个新模型。该模型的精度在75.81%左右。 If the same process is repeated without the Bagging operator i.e. only the Decision Tree operator is used in the training subprocess then the accuracy of that model turns out to be around 66%. Thus Bagging improved the performance of the base learner (i.e. Decision Tree).