2014-11-02 3 views
0

Мне нужно установить критерии оценки для поиска по сетке Weka через код Java. Я добавил следующий код. Но это не работает.Как установить критерии оценки поиска сетки Weka через код Java

int EVALUATION_CC = 0; 
    int EVALUATION_RMSE = 1; 
    int EVALUATION_RRSE = 2; 
    int EVALUATION_MAE = 3; 
    int EVALUATION_RAE = 4; 
    int EVALUATION_COMBINED = 5; 
    int EVALUATION_ACC = 6; 
    int EVALUATION_KAPPA = 7;  
    Tag[] TAGS_EVALUATION = { 
     new Tag(EVALUATION_CC, "CC", "Correlation coefficient"), 
     new Tag(EVALUATION_RMSE, "RMSE", "Root mean squared error"), 
     new Tag(EVALUATION_RRSE, "RRSE", "Root relative squared error"), 
     new Tag(EVALUATION_MAE, "MAE", "Mean absolute error"), 
     new Tag(EVALUATION_RAE, "RAE", "Root absolute error"), 
     new Tag(EVALUATION_COMBINED, "COMB", "Combined = (1-abs(CC)) + RRSE + RAE"), 
     new Tag(EVALUATION_ACC, "ACC", "Accuracy"), 
     new Tag(EVALUATION_KAPPA, "KAP", "Kappa") 
    }; 
    SelectedTag st=new SelectedTag(EVALUATION_ACC, TAGS_EVALUATION); 
    GridSearch gs = new GridSearch(); 
    gs.setEvaluation(st); 

Может ли кто-нибудь рассказать мне, как это сделать?

+0

Можно сказать, что не работает? Это работает? Вы получаете сообщение об ошибке? Что это делает, что вам не нравится? –

+0

работает без ошибок. Но поиск по сетке использует критерии оценки по умолчанию (CC-Correlation Coefficient) – saj

ответ

2

Проверьте это,

GridSearch gs = new GridSearch(); 
int requiredIndex = 6; // for accuracy 
SelectedTag st=new SelectedTag(requiredIndex , weka.classifiers.meta.GridSearch.TAGS_EVALUATION); 
gs.setEvaluation(st); 
1

У меня была та же проблема, но в конце концов я получил его на работу, используя это:

int waucIndex = 8; 
SelectedTag st=new SelectedTag(waucIndex , weka.classifiers.meta.GridSearch.TAGS_EVALUATION); 
search.setEvaluation(st); 

Вы можете убедиться, что он установлен правильно, выполнив:

System.out.println(search.getEvaluation());