我正在尝试使用一个日期属性和一个数字属性创建训练实例。由于我的日期值,我收到错误。 错误是: java.lang.IllegalArgumentException:属性既不是名义也不是字符串!
我想我不明白如何处理这种格式。我已经搜索了很多,但所有的例子都是关于在arff文件中使用它,我找不到任何java代码的例子。如果你能告诉我哪里出错了,或者给我发一些可以指导我解决这个问题的链接,我将非常感激。
以下是代码:
Attribute dateTimeAttribute = new Attribute("dateTime","yyyy-MM-dd HH:mm:ss");
Attribute valueAttribute = new Attribute("value");
FastVector fvWekaAttributesLinear = new FastVector(2);
fvWekaAttributesLinear.addElement(dateTimeAttribute);
fvWekaAttributesLinear.addElement(valueAttribute);
Instances isTrainingSet = new Instances("Relation", fvWekaAttributesLinear, 100000);
isTrainingSet.setClassIndex(1);
Instance ins = new Instance(2);
ins.setValue((Attribute)fvWekaAttributesLinear.elementAt(0), "2009-07-15 10:00:00");
ins.setValue((Attribute)fvWekaAttributesLinear.elementAt(1), 0.5);
答案 0 :(得分:3)
这就是我解决问题的方法:
Attribute dateTimeAttribute = new Attribute("dateTime","yyyy-MM-dd HH:mm");
Attribute valueAttribute = new Attribute("value");
FastVector fvWekaAttributesLinear = new FastVector(2);
fvWekaAttributesLinear.addElement(dateTimeAttribute);
fvWekaAttributesLinear.addElement(valueAttribute);
Instances isTrainingSet = new Instances("Relation", fvWekaAttributesLinear, 100000);
double[] attValues = new double[isTrainingSet.numAttributes()];
attValues[0] = isTrainingSet.attribute("dateTime").parseDate("2009-07-15 10:00");
attValues[1] = 0.5;
这是我发现有用的链接: http://zitnik.si/wordpress/2011/09/25/quick-intro-to-weka/