如果我们有,
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中从上面的行构建实例?
答案 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的强大功能选择工具。如果这还不够好,你总是可以使用更复杂的降维方法。