2015-01-31 2 views
0

Я пытаюсь запустить классификатор с InputMappedClassifier, так как я знаю, что тест arff не хватает некоторых атрибутов в тренировке arff. Однако, когда я бегу:Использование InputMappedClassifier из командной строки

java -cp ./weka.jar weka.classifiers.misc.InputMappedClassifier -t aa/lang-train.arff \ 
-T aa/lang-test.arff -W weka.classifiers.trees.J48 -classifications \ 
weka.classifiers.evaluation.output.prediction.PlainText 

Он генерирует исключение:

java.lang.IllegalArgumentException: Invalid class index: 2466 
    at weka.core.Instances.setClassIndex(Instances.java:1293) 
    at weka.core.converters.ConverterUtils$DataSource.getStructure(ConverterUtils.java:346) 
    at weka.classifiers.evaluation.output.prediction.AbstractOutput.printClassifications(AbstractOutput.java:625) 
    at weka.classifiers.evaluation.output.prediction.AbstractOutput.print(AbstractOutput.java:702) 
    at weka.classifiers.evaluation.Evaluation.evaluateModel(Evaluation.java:1572) 
    at weka.classifiers.Evaluation.evaluateModel(Evaluation.java:649) 
    at weka.classifiers.AbstractClassifier.runClassifier(AbstractClassifier.java:297) 
    at weka.classifiers.misc.InputMappedClassifier.main(InputMappedClassifier.java:943) 

Если я запустить его без -classifications, это работает. Как я могу получить классификацию?

ответ

2

Вы вводите неверные параметры InputMappedClassifier. Он жалуется, что вы даете ему данные обучения (-t) и test (-T). Он поддерживает следующие:

Options specific to weka.classifiers.misc.InputMappedClassifier: 

-I 
    Ignore case when matching attribute names and nominal values. 
-M 
    Suppress the output of the mapping report. 
-trim 
    Trim white space from either end of names before matching. 
-L <path to model to load> 
    Path to a model to load. If set, this model 
    will be used for prediction and any base classifier 
    specification will be ignored. Environment variables 
    may be used in the path (e.g. ${HOME}/myModel.model) 
-W 
    Full name of base classifier. 
    (default: weka.classifiers.rules.ZeroR) 
-output-debug-info 
    If set, classifier is run in debug mode and 
    may output additional info to the console 
-do-not-check-capabilities 
    If set, classifier capabilities are not checked before classifier is built 
    (use with caution). 

Так что ваша команда должна выглядеть следующим образом:

java -cp ./weka.jar weka.classifiers.misc.InputMappedClassifier -W weka.classifiers.trees.J48 \ 
-t aa/lang-train.arff \ 
-T aa/lang-test.arff \ 
-classifications weka.classifiers.evaluation.output.prediction.PlainText 
Смежные вопросы