我正在尝试使用weka获取数据集的第一列。但复制过滤器返回整个集!为什么?感谢。
Copy mCopy = new Copy();
mCopy.setInputFormat(rawData);
String rangeList;
rangeList = "first";
mCopy.setAttributeIndices(rangeList);
Instances dataSlice = weka.filters.Filter.useFilter( rawData, mCopy);
System.out.println(dataSlice);
答案 0 :(得分:0)
如果您的代码效果很好,它会添加first
属性的另一个副本,而不是仅保留它,这意味着dataSlice
将为rawData + first attribute of rawData
。
让我们更正您的代码。 setAttributeIndices()
之前应调用setInputFormat()
。这在weka API中明确说明:
注意:在调用setInputFormat(Instances)之前使用此方法,因为输出格式是在该方法中确定的。
如果您更改了调用它们的顺序,您的代码将获得我上面说的结果。
如果您只想保留first
属性,可以使用Remove
过滤器和setAttributeIndices("2-last")
。我不熟悉Weka。可能有更好的方法来做到这一点。
希望这可以帮到你。