2016-07-31 9 views
0

私はwekaからjavaコードにInputMappedClassifierを追加しようとしました。私のデータTrainとTestは互換性がないためです。 modelforの他のクラシファイアを使用する前に、誰かにそれを追加する方法をアドバイスしてもらえますか?InputMappedClassifierをwekaからjavaに実装する

あり、私のコード

InputMappedClassifier mapped = new InputMappedClassifier(); 
     mapped.buildClassifier(Training); 
     Instances mappedClassifierDataset = mapped.getModelHeader(Training); 
     for (int i = 0; i < Training.numInstances(); i++) { 
      Instance map = mapped.constructMappedInstance(Training.instance(i)); 
      mappedClassifierDataset.add(map); 
     } 
     System.out.println(mappedClassifierDataset); 

     Classifier classifier = new NaiveBayes(); 
     classifier.buildClassifier(Training); 
     Evaluation eval = new Evaluation(Testing); 
     eval.evaluateModel(classifier, Testing); 
     evalResut = eval.toSummaryString("\nResults\n======\n", false); 
+0

どのようにテストとトレーニングセットを作成しますか?コードを表示します。 – xro7

+0

申し訳ありませんが、データを作成するためのコードが長すぎます –

答えて

0

私はあなたが電車やテストデータセットに互換性がないという理由だけでInputMappedClassifierを使用したいとします。しかしどのくらい互換性のないがこれらのデータセットですか? 列車のデータセットが存在しない機能が含まれている場合は、あなたのテスト-datest機能はトレーニングデータセットの機能のスーパーセット(電車の中ですべての機能がテストに加えて他の機能にも存在する)

InputMappedClassifier mappedCls = new InputMappedClassifier(); 
    cls.buildClassifier(data); 
    mappedCls.setModelHeader(data); 
    mappedCls.setClassifier(cls); 
    mappedCls.setSuppressMappingReport(true); 
    Evaluation eval = new Evaluation(testdata); 
    eval.evaluateModel(mappedCls, testdata); 

であれば、次のコードが動作しますテストデータセットでは、モデルを評価する前に、その逆も適用する必要があります。

希望します。

+0

は異なるのですか? **列車**属性1(a、b、c)および**試験**属性1(a、c)。もしそうなら、テストデータのために逆の方法を適用する。申し訳ありませんが、私はこれの初心者です –

+0

こんにちはLefteris、私は反対のデータに適用についてあなたの答えを得ることはできますか? 私はあなたの助けが必要です、ありがとう –

関連する問題