Weka 中的布尔属性



是否可以在WEKA中实现布尔属性?

我想实施市场篮分析,为此我需要一张这样的表格

Product_A Prod_B
Yes       No
No        Yes
Yes       Yes

等等。

对于Nofalse,我可以使用 ? ,它代表 WEKA 中的空值:

Product_A Prod_B
Yes       ?
?         Yes
Yes       Yes

但是现在我得到了频繁的项集和规则,例如:

Product_A=Yes, Prod_B=Yes

但我只想拥有

Product_A, Prod_B.

你明白我的意思吗?

我找到了一个关于创建ARFF文件的指南,但没有任何布尔数据类型。但是拥有这样的数据类型会很有用,还是我想错了?

只需使用带有 0 和 1 的数字属性表示假和真。ML 算法通常不关心布尔值,无论如何都会将它们视为数字。

使用ft作为标称值。这在supermarket.arff示例文件中使用,并且与 Java API 兼容。

我用这个 Java 代码创建了这样一个"布尔"属性:

FastVector tempBooleanValues = new FastVector();
tempBooleanValues.addElement("f");
tempBooleanValues.addElement("t");
tempAttributes.addElement(new Attribute("attribute_1", tempBooleanValues));

在 arff 文件中,它看起来像这样:

@attribute attribute_1 {f,t}
...
transaction_1,f
transaction_2,t

有关示例,请参阅 Weka supermarket.arff 文件。

如果你想使用稀疏格式,它会变得更加棘手的IIRC;因为默认情况下,缺失值被替换为它们的模式 - 这将是Yes。但我相信 Weka 的最新版(不是书籍版本)在那里有改进。

最新更新