Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Weka打印稀疏arff文件_Java_Weka_Sparse Matrix_Arff - Fatal编程技术网

Java Weka打印稀疏arff文件

Java Weka打印稀疏arff文件,java,weka,sparse-matrix,arff,Java,Weka,Sparse Matrix,Arff,我正在尝试arff文件的稀疏表示,如图所示。在我的程序中,我可以打印类别标签“B”,但由于某些原因,它不能打印“A” 程序的输出类似于- {0 6,2 8} --- I should get {0 6,2 8,3 A} 但当我这么做的时候 vals[index] = attVals.indexOf("B"); 我得到适当的输出- {0 6,2 8,3 B} 出于某种原因,它没有采用索引0。有人能告诉我为什么会这样吗?这是一个非常普遍的问题。稀疏格式按定义不存储0值 Weka

我正在尝试arff文件的稀疏表示,如图所示。在我的程序中,我可以打印类别标签“B”,但由于某些原因,它不能打印“A”

程序的输出类似于-

 {0 6,2 8}      ---  I should get {0 6,2 8,3 A}
但当我这么做的时候

vals[index] = attVals.indexOf("B");
我得到适当的输出-

 {0 6,2 8,3 B}

出于某种原因,它没有采用索引0。有人能告诉我为什么会这样吗?

这是一个非常普遍的问题。稀疏格式按定义不存储0值

Weka明确表示:

警告:从中保存SparseInstance对象时存在已知问题 具有字符串属性的数据集。在Weka中,字符串和标称数据 值存储为数字;这些数字可以作为一个数据库的索引 可能属性值的数组(这非常有效)。然而, 第一个字符串值被指定为索引0:这意味着, 在内部,此值存储为0。当SparseInstance 不输出内部值为0的已写入字符串实例,因此 它们的字符串值丢失(当再次读取arff文件时 默认值0是不同字符串值的索引,因此 属性值似乎在更改)。若要解决此问题,请添加 索引0处的伪字符串值,在声明 可能在SparseInstance对象中使用的字符串属性 并保存为稀疏的ARFF文件

您必须首先放置一个虚拟属性。只需将代码修改为:

attVals = new FastVector();
attVals.addElement("dummy");
attVals.addElement("A");
attVals.addElement("B");
如果你需要进一步的帮助,请告诉我

attVals = new FastVector();
attVals.addElement("dummy");
attVals.addElement("A");
attVals.addElement("B");