2010-12-07 5 views
0

Le schéma que je suis en train d'évaluer est:Comment évaluer ce système dans RWeka?

weka.classifiers.meta.AttributeSelectedClassifier -E "weka.attributeSelection.CfsSubsetEval " -S "weka.attributeSelection.BestFirst -D 1 -N 5" -W weka.classifiers.functions.SMOreg -- -C 1.0 -N 0 -I "weka.classifiers.functions.supportVector.RegSMOImproved -L 0.0010 -W 1 -P 1.0E-12 -T 0.0010 -V" -K "weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1.0" 

dire que je suis en train d'exécuter un AttributeSelectedClassifier avec un classificateur SMOreg à l'intérieur. Chaque autre paramètre est la valeur par défaut du classificateur respectif.

Ainsi, le code R est:

optns <- Weka_control(W = "weka.classifiers.functions.SMOreg") 
ASC <- make_Weka_classifier("weka/classifiers/meta/AttributeSelectedClassifier") 
model <- ASC(class ~ ., data = as.data.frame(dat), control = optns) 
evaluation <- evaluate_Weka_classifier(model, numFolds = 10) 
evaluation 

Quand je lance le code R ci-dessus je reçois cette erreur:

Error in .jcall(evaluation, "D", x, ...) : java.lang.NullPointerException 

L'erreur ci-dessus se produit dans evaluate.R de RWeka où il essaie d'appeler les méthodes WEKA: "pctCorrect", "pctIncorrect", "pctUnclassified", "kappa", "meanAbsoluteError","rootMeanSquaredError","relativeAbsoluteError","rootRelativeSquaredError"

J'ai également essayé de spécifier manuellement les valeurs par défaut en utilisant l'objet Weka_control comme ceci:

optns <- Weka_control(E = "weka.attributeSelection.CfsSubsetEval ", 
         S = list("weka.attributeSelection.BestFirst", D = 1,N = 5), 
         W = list("weka.classifiers.functions.SMOreg", "--", 
           C=1.0, N=0, 
         I = list("weka.classifiers.functions.supportVector.RegSMOImproved", 
           L = 0.0010, W=1,P=1.0E-12,T=0.0010,V=TRUE), 
         K = list("weka.classifiers.functions.supportVector.PolyKernel", 
           C=250007, E=1.0))) 
ASC <- make_Weka_classifier("weka/classifiers/meta/AttributeSelectedClassifier") 
model <- ASC(class ~ ., data = as.data.frame(dat), control = optns) 
evaluation <- evaluate_Weka_classifier(model, numFolds = 10) 
evaluation 

et je reçois cette erreur:

Error in .jcall(classifier, "V", "buildClassifier", instances) : java.lang.Exception: Can't find class called: weka.classifiers.functions.SMOreg -- -C 1 -N 0 -I weka.classifiers.functions.supportVector.RegSMOImproved -L 0.001 -W 1 -P 1e-12 -T 0.001 -V -K weka.classifiers.functions.supportVector.PolyKernel -C 250007 -E 1

Répondre

0

J'ai essayé votre exemple, mais eu une autre erreur (où dat est mon propre trame de données)

Error in model.frame.default(formula = class ~ ., data = dat) : 
    object is not a matrix 

Votre erreur peut être pas directement lié à la syntaxe de l'appel de cette fonction Weka, mais quelques problèmes avec la configuration du chemin.

Questions connexes