MetaCost(RapidMiner Studio Core)
剧情简介
该元分类器通过使用给定的代价矩阵根据分类代价计算标签预测,使其基分类器对代价敏感。描述
方法中指定的成本矩阵,使其基分类器对成本敏感成本矩阵参数。该算子使用的方法类似于Pedro Domingos(1999)描述的MetaCost方法。
MetaCost操作符是一个嵌套操作符,即它有一个子进程。子流程必须有一个学习器,即一个操作符,它需要一个ExampleSet并生成一个模型。该算子试图利用其子过程中提供的学习器构建一个更好的模型。为了应用此操作符,您需要对子流程有基本的了解。为了对子过程有基本的了解,请阅读子过程操作符的文档。
大多数分类算法都假设所有的错误都有相同的代价,但这种情况很少发生。例如,在数据库营销中,给没有回复的人发送邮件的成本非常小,但不给会回复的人发送邮件的成本是整个利润损失。一般来说,错误分类的代价可以用一个任意的代价矩阵来描述C,C (i, j)是预测一个例子属于类的代价我而事实上它属于阶级j.单独地使每个分类学习器对成本敏感是很费力的,而且往往不是微不足道的。MetaCost是一种有原则的方法,通过在任意分类器周围包装成本最小化过程,使其对成本敏感。此过程将底层分类器视为黑盒,不需要了解其功能或对其进行更改。MetaCost适用于任意数量的类和任意成本矩阵。
输入
- 训练集(数据表)
这个输入端口需要一个ExampleSet。它是附带的示例流程中的Retrieve操作符的输出。其他运算符的输出也可以用作输入。
输出
- 模型(MetaCost模型)
元模型从这个输出端口交付,现在可以将其应用于未知的数据集,以预测标签属性。
- 榜样(数据表)
作为输入给出的ExampleSet不会通过该端口更改为输出。这通常用于在进一步的操作符中重用相同的ExampleSet,或者在结果工作区中查看ExampleSet。
参数
- cost_matrix该参数用于指定开销矩阵。成本矩阵在结构上类似于混淆矩阵,因为它在一个维度上预测类别,在另一个维度上预测实际类别。因此,成本矩阵可以表示每种可能分类结果的成本:预测标签与实际标签。实际上这个矩阵是一个错误分类代价的矩阵因为你可以为被错误分类为其他类别的某些类别指定不同的权重。权重也可以分配给正确的分类,但通常它们被设置为0。矩阵中的类被标记为类1,类2等,其中类根据其在内部映射中的顺序编号。范围:字符串
- use_subset_for_training此参数指定用于训练的示例的比例。它的值必须大于0(即0个样本),并应小于或等于1(即整个数据集)。范围:真正的
- 迭代此参数指定MetaCost算法的最大迭代次数。范围:整数
- sampling_with_replacement此参数表示是否应该使用带替换的采样。在置换抽样中,每一步所有的样本被选中的概率都是相等的。一旦为样本选择了一个示例,它仍然是选择的候选对象,并且可以在任何其他后续步骤中再次选择它。因此,具有替换的样本可以多次具有相同的示例。范围:布尔
- use_local_random_seed该参数表示a局部随机种子应该用于随机化。使用相同的值局部随机种子会产生相同的样品。改变这个参数的值会改变样本随机化的方式,因此样本将有一组不同的值。范围:布尔
- local_random_seed此参数指定局部随机种子.此参数仅在使用当地的随机种子参数设置为true。范围:整数
教程的过程
使用MetaCost操作符生成更好的决策树
使用检索操作符加载“Sonar”数据集。将Split Validation操作符应用于其上以训练和测试分类模型。MetaCost运算符应用于分割验证运算符的训练子过程中。决策树操作符应用于MetaCost操作符的子流程中。MetaCost操作符的iterations参数被设置为10,因此它的子流程将有10次迭代。看一下MetaCost操作符的cost matrix参数中指定的成本矩阵。你可以看到错误分类的代价是不相等的。Apply Model操作符在测试子流程中用于应用MetaCost操作符生成的模型。结果标记的ExampleSet由性能(分类)操作符用于度量模型的性能。分类模型及其性能向量连接到输出,可以在Results Workspace中看到它们。 You can see that the MetaCost operator produced a new model in each iteration. The accuracy of this model turns out to be around 82%. If the same process is repeated without MetaCost operator i.e. only Decision Tree operator is used in training subprocess then the accuracy of that model turns out to be around 66%. Thus MetaCost improved the performance of the base learner (i.e. Decision Tree) by using the cost matrix to compute label predictions according to classification costs.