0

我正在尝试使用 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);
4

1 回答 1

0
  • 如果您的代码运行良好,它将添加该first属性的另一个副本,而不是仅保留它,这dataSlice意味着rawData + first attribute of rawData.

  • 让我们更正您的代码。setAttributeIndices()应该在之前调用setInputFormat()。这在 weka API 中有明确说明:

    注意:在调用 setInputFormat(Instances) 之前使用此方法,因为输出格式在该方法中确定。

    如果您更改调用它们的顺序,您的代码将得到我上面所说的结果。

  • 如果只想保留first属性,可以使用Removefilter 和setAttributeIndices("2-last"). 我不擅长Weka。可能有更好的方法来做到这一点。

希望这可以帮助你。

于 2013-07-16T14:59:05.303 回答