3

我正在尝试创建具有一个日期属性和一个数字属性的训练实例。由于我的日期值,我得到了错误。错误是: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); 
4

1 回答 1

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/

于 2013-11-04T15:09:10.317 回答