2011-08-27 56 views
1

如果假设我们有,如果实例值已设置,如何在WEKA中创建实例?

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

我们可以使用csvloader或使用ARRF我们可以用WEKA任何分类器创建实例

但如果假设我们有,

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" 

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

回答

0

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

您可以使用ARFF格式指定数据。如果你必须使用csv文件,你可能必须自己实现加载器。但是,如果有可能使用布尔值将这些集合分解为合理数量的属性,我会这样做。如维基中所述,只有一个包weka.classifiers.mi提供了多实例分类器。

无论如何,你似乎不得不使用一个以上的包。在这种情况下,你可能想要寻找另一种选择。

+0

可以请帮我用一块Java代码来创建多实例.. – user896456

+0

你是否已经看[链接](http://weka.wikispaces.com/Creating+an+ARFF+file)?本网站提供了上述关系属性的示例。 – box

+0

我完全失去了,因为我的帖子中有两个问题。所提供的链接对我来说并不是那么有建设性的理解我自己。其次,我上面提到的三套不需要是固定的大小。让我这样说,值可以是这样的, x = {2,3,4,5},y = {10,11,12,13},z = {6,3,9,5}类= “biogancy” X = {7,6,2,3,10,13},Y = {3,2,8,4,2,7},Z = {4,3,9,7,9, 6} class =“uiopnt” 并且我想知道Instances对象是如何创建的。因为上面链接中提供的示例显示的错误很少: atts.addElement(new Attribute(“att5”,dataRel,0)); vals [4] = data.attribute(4).addRelation(dataRel); – user896456

0

我可以建议另一种方法吗?

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

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

这表示可能是您的需求过于稀疏,但它仍然是你的情况下,一个完整的数学描述。为了解决稀疏问题,我建议使用WEKA的真棒特征选择工具。如果这还不够好,你总是可以采用更复杂的降维方法。