3

1 つの日付属性と 1 つの数値属性を持つトレーニング インスタンスを作成しようとしています。日付の値が原因でエラーが発生します。エラーは次のとおりです: 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 に答える