2012-03-24 10 views
-1

So habe ich eine Ausbildung und Prüfgeräten und sie enthalten mehrwertige Nennwerte. Solange ich & Test NaiveBayesMultinomial Klassifikator trainieren müssen, was nicht mehrwertig Nennwerte unterstützt, ich folgendes:Weka NominalToBinary macht Test- und Trainingssätze unvereinbar

java weka.filters.supervised.attribute.NominalToBinary -i train.arff -o train_bin.arff -c last 
java weka.filters.supervised.attribute.NominalToBinary -i test.arff -o test_bin.arff -c last 

Dann ich dies auszuführen:

java weka.classifiers.bayes.NaiveBayesMultinomial -t train_bin.arff -T test_bin.arff 

und die folgenden Fehler tritt auf:

Weka exception: Train and test files not compatible! 

Soweit ich verstanden, nachdem ich beide .arff Dateien untersucht, wurden sie nicht kompatibel, nachdem ich NominalToBinary lief, da Zug und testen se ts sind unterschiedlich und somit werden unterschiedliche binäre Variablen generiert.

Ist es möglich, NominalToBinary Umwandlung in einer Art und Weise durchzuführen, dass Sets kompatibel zu halten sein?

Antwort

0

Concatenate die zwei Sätze in einem einzigen, führen die Umwandlung NominalToBinary spaltete sie dann wieder. Auf diese Weise sollten sie auf die gleiche Weise normalisiert werden.

Aber sind Sie sicher, dass die Dateien, bevor kompatibel waren? Oder enthält dein Test- und/oder Trainingssatz möglicherweise Attributfälle, die der andere nicht hat?

+0

Welcher Klassifikator kann mit mehrwertigen Nennwerten arbeiten? Und wie kann ich verketten und dann auf die gleiche Weise teilen? – bazzilic

+0

Ich verwende keine Klassifizierung oder Weka viel, so kann ich Ihnen die Details nicht geben. Es ist nur so, dass Sie Test- und Trainingsdaten immer genau gleich normalisieren sollten (und das beinhaltet auch eine binäre Konvertierung). Normalerweise macht man den Split nach der Vorverarbeitung. –