Weka を使用して調査している大規模なデータセットがあります。次のようになります。今日は、できる限り多くのデータを分析し、トレーニング済みの分類器を作成します。このモデルをファイルとして保存します。それから明日、私はデータの新しいバッチを取得し、保存されたモデルを使用して新しいデータのクラスを予測したいと考えています。これが毎日繰り返されます。最終的には保存したモデルを更新しますが、今のところ静的であると仮定します。
このタスクのサイズと頻度のため、これを自動的に実行したいと考えています。つまり、コマンド ラインなどを使用します。ただし、エクスプローラーにも問題があります。
私の質問は、私のデータセットが大きくなるにつれて、属性の可能なラベルのリストも大きくなるという事実に関係しています。Weka は、そのような属性リストは変更できない、またはトレーニング セットとテスト セットは互換性がないと言われています (参照: http://weka.wikispaces.com/Why+do+I+get+the+error+message+%27training+and +test+set+are+not+compatible%27%3F )。しかし、私の世界では、来週出くわすすべての属性ラベルを今日知っている可能性はありません。
状況を修正するために、バッチ フィルタリングを実行することをお勧めします ( http://weka.wikispaces.com/How+do+I+generate+compatible+train+and+test+sets+that+get+processed+with+ a+filter%3F )。これは、毎日、再フィルター処理されたトレーニング データを使用してモデルを再構築する必要があることを意味しているようです。
この時点で、すべてが非常に難しいように思われるので、私は恐ろしい単純な初心者の間違いを犯しているのではないかと心配しているので、助けを求めます.
詳細:
モデルはによって作成されました
java -Xmx1280M weka.classifiers.meta.FilteredClassifier ^
-t .\training.arff -d .\my.model -c 15 ^
-F "weka.filters.supervised.attribute.Discretize -R first-last" ^
-W weka.classifiers.trees.J48 -- -C 0.25 -M 2
素朴に、私が試みるだろうと予測するために:
java -Xmx1280M weka.core.converters.DatabaseLoader ^
-url jdbc:odbc:(database) ^
-user (user) ^
-password (password) ^
-Q "exec (my_stored_procedure) '1/1/2012', '1/2/2012' " ^
\> .\NextDay.arff
その後:
java -Xmx1280M weka.classifiers.trees.J48 ^
-T .\NextDay.arff ^
-l .\my.model ^
-c 15 ^
-p 0 ^
\> .\MyPredictions.txt
これにより、次の結果が得られます。
java.lang.Exception: training and test set are not compatible
at weka.classifiers.Evaluation.evaluateModel(Evaluation.java:1035)
at weka.classifiers.Classifier.runClassifier(Classifier.java:312)
at weka.classifiers.trees.J48.main(J48.java:948)
関連する質問は、kdkeys.net/training-and-test-set-are-not-compatible-weka/ で尋ねられます。
関連する問題は、コマンドライン バージョンのデータベース抽出では一時 .arff ファイルの生成が必要であり、JDBC で生成された arff ファイルが「日付」データを正しく処理していないように見えることです。私のデータベースは ISO-8601 フォーマット "yyyy-MM-dd'T'HH:mm:ss" の日付を生成しますが、エクスプローラーと JDBC データから生成された .arff ファイルの両方がこれらをタイプ NOMINAL として表します。そのため、ヘッダーの日付属性のラベルのリストは非常に長く、データセットごとに同じになることはありません。
私は Java や Python のプログラマーではありませんが、それが必要なら、本を買いに行きます! 前もって感謝します。