使用Rapidminer的单类SVM

时间:2015-11-21 08:38:02

标签: libsvm rapidminer

我正在尝试使用rapidminer上的一流libsvm。但是,我收到了一个问题,即"二进制标签不受支持"。我的标签数据集只有一种标签。如果我将svm类型更改为" C-SVC",则会出现一个问题," SVM没有足够的功能来处理只有一个标签的示例集"。我已经尝试了几种数据类型,我看到了这个帖子http://rapid-i.com/rapidforum/index.php/topic,1596.0.html,但在我的情况下它并没有多大帮助。我检查了svm运营商信息。它表明操作员只接受一个类标签。但是,set role运算符只有一个通用标签。它不能将角色设置为一类。

我使用rapidminer时很新。

请帮助:((

谢谢。

1 个答案:

答案 0 :(得分:1)

我曾经遇到过这个问题。如果有其他人遇到这个,那么这对我有用:

即使您在训练集中只有一个标签,但您的示例可能有(至少)2个可能的值。过滤训练集仅包含正面示例后,您必须添加地图组件,在其中将标签的所有可能值设置为您正在训练模型的单个标签。

注意:之后,您必须将值映射回来。将内部映射到您已训练模型的标签,将之外的映射到负面示例。

例如

对于我的工作流程,在X-Validation中,我首先将我的训练集过滤为仅包含具有“男性”属性的示例。然后,我们将'Male'映射到'Male'和'Female'映射到'Male'(这不会改变任何示例,但Rapidminer现在允许我们使用LibSVM的One Class SVM)。然后我们训练模型。在测试期间,我们将模型应用于未过滤的测试集。这为我们提供了内部外部的预测。然后,我们将内部映射到“男性”,之外映射到“女性”,并对预测执行性能分类

enter image description here