Weka J48 Classifier: Não consegue lidar com a classe numéric
gora estou tentando criar um modelo classificador J48 (C4.5) nos meus dados de treinamento usando Wek
Primeiro eu faço isso, o que parece dar certo:
java -Xmx10G -cp /weka/weka.jar weka.core.converters.TextDirectoryLoader -dir / home / test / cats> /home/test/cats.arf
Isso parece correr bem também:
java -Xmx10G -cp /weka/weka.jar weka.filters.unsupervised.attribute.StringToWordVector -i /home/test/cats.arff -o /home/test/cats-vector.arf
Isso não vai bem:
java -Xmx10G -cp /weka/weka.jar weka.classifiers.trees.J48 -t /home/test/cats-vector.arff -d /home/test/cats.mode
Dá o seguinte erro:
weka.core.UnsupportedAttributeTypeException: weka.classifiers.trees.j48.C45Prune ableClassifierTree: Cannot handle numeric class!
at weka.core.Capabilities.test(Capabilities.java:954)
at weka.core.Capabilities.test(Capabilities.java:1110)
at weka.core.Capabilities.test(Capabilities.java:1023)
at weka.core.Capabilities.testWithFail(Capabilities.java:1302)
at weka.classifiers.trees.j48.C45PruneableClassifierTree.buildClassifier (C45PruneableClassifierTree.java:116)
at weka.classifiers.trees.J48.buildClassifier(J48.java:236)
at weka.classifiers.Evaluation.evaluateModel(Evaluation.java:1076)
at weka.classifiers.Classifier.runClassifier(Classifier.java:312)
at weka.classifiers.trees.J48.main(J48.java:948)
Então eu tentei isso:
java -Xmx10G -cp /weka/weka.jar weka.classifiers.trees.J48 -t /home/test/cats.arff -d /home/test/cats.mode
Que também fornece o erro:
weka.core.UnsupportedAttributeTypeException: weka.classifiers.trees.j48.C45PruneableClassifierTree: Cannot handle string attributes!
at weka.core.Capabilities.test(Capabilities.java:980)
at weka.core.Capabilities.test(Capabilities.java:869)
at weka.core.Capabilities.test(Capabilities.java:1085)
at weka.core.Capabilities.test(Capabilities.java:1023)
at weka.core.Capabilities.testWithFail(Capabilities.java:1302)
at weka.classifiers.trees.j48.C45PruneableClassifierTree.buildClassifier(C45PruneableClassifierTree.java:116)
at weka.classifiers.trees.J48.buildClassifier(J48.java:236)
at weka.classifiers.Evaluation.evaluateModel(Evaluation.java:1076)
at weka.classifiers.Classifier.runClassifier(Classifier.java:312)
at weka.classifiers.trees.J48.main(J48.java:948)
Obviamente, eu preparei os dados de alguma maneira errada (entre os arquivos de texto de entrada em subdiretórios que são nomeados pelas categorias que eu quero). Mas eu pensei que estava seguindo as instruções no Weka Wiki:Weka Wiki Categorizando arquivos de texto Weka Wiki Primer
Então, o que estou fazendo de errado? Eu gostaria de usar o J48 porque ele recebe alta precisão nos meus dados nos testes. Então, o que faço com meus dados para que o classificador J48 aceite? Ou preciso usar um classificador diferente?
Por favor ajude