如果设置了实例值,如何在WEKA中创建实例?

时间:2011-08-27 12:54:49

标签: xml csv set weka instances

如果我们有,

x=2, y=3,z=5, class="first"
x=3, y=5,z=10, class="second"

我们可以使用csvloader或使用arrf,我们可以为Weka的任何分类器创建 Instances

但如果我们有,

x={2,3,4,5}, y={10,11,12,13}, z={6,3,9,5} class="biogancy"
x={7,6,2,3},y={3,2,8,4}, z={4,3,9,7} class="uiopnt"

如何为每一行创建Instance对象?有没有像csvloader这样简单的方法?如何管理csv文件中的上述行?我需要使用xml吗?如果是这样,我如何在WEKA中从上面的行构建实例?

2 个答案:

答案 0 :(得分:0)

关系属性是最接近您的描述的东西。它允许您使用多个实例,但您只能使用一个包:http://weka.wikispaces.com/Multi-instance+classification

您可以使用ARFF格式指定数据。如果必须使用csv文件,则可能必须自己实现加载程序。

但是,如果可以使用布尔值将集合分解为合理数量的属性,我会这样做。如wiki中所述,只有一个包weka.classifiers.mi提供了多实例分类器。

无论如何,你似乎不得不使用多个包。在这种情况下,您可能希望寻找另一种替代方案。

答案 1 :(得分:0)

我可以建议另一种选择吗?

如果每个中的值都是离散且有界的,则可以创建二进制属性来为每个集建模。例如,假设x,y,z都是{1,2,3}的子集;在这种情况下,您的实例将包含9(+1)个属性:

x1, x2, x3, y1, y2, y3, z1, z2, z3, class

这种表示可能太稀疏,无法满足您的需求,但它仍然是您实例的完整数学描述。为了解决稀疏性问题,我建议使用WEKA的强大功能选择工具。如果这还不够好,你总是可以使用更复杂的降维方法。