Как оценить эту схему в RWeka? - PullRequest
0 голосов
/ 07 декабря 2010

Схема, которую я пытаюсь оценить:

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"

т.е. я пытаюсь запустить AttributeSelectedClassifier с классификатором SMOreg внутри.Каждый другой параметр является значением по умолчанию соответствующего классификатора.

Таким образом, код R:

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

Когда я запускаю приведенный выше код R, я получаю эту ошибку:

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

Вышеуказанная ошибка возникает в оценке RWeka.R, где он пытается вызвать методы WEKA: "pctCorrect", "pctIncorrect", "pctUnclassified", "kappa", "meanAbsoluteError","rootMeanSquaredError","relativeAbsoluteError","rootRelativeSquaredError"

Я также пытался вручную указать значения по умолчанию, используя объект Weka_control, например:

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

, и я получаю эту ошибку:

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

1 Ответ

0 голосов
/ 25 марта 2011

Я попробовал ваш пример, но получил другую ошибку (где dat - мой собственный фрейм данных)

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

Ваша ошибка может быть не связана напрямую с синтаксисом вызова этой функции Weka, но некоторые проблемы с настройкой пути.

...