2013-11-03 96 views
3

我想創建具有一個日期屬性和一個數字屬性的培訓實例。由於我的日期值,我得到錯誤。 錯誤是: java.lang.IllegalArgumentException:屬性既不名義也不是字符串!如何在java代碼中使用weka中的日期類型?

我想我不知道如何處理這種格式。我已經搜索了很多,但所有的例子都是關於在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); 

回答

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/

相關問題