Как применить обученную модель кросс-валидации в тестовом наборе, используя weka в java-коде - PullRequest
0 голосов
/ 13 ноября 2018

Я использую weka в java-коде. Я знаю, что CrossValidation можно использовать для оценки модели.Однако мне нужно обучить модель с использованием метода CrossValidation, а затем применить ту же модель к тестовому набору.Мой вопрос: возможна ли эта опция, когда weka используется в коде Java?Я использую следующий код, но он не дает желаемых результатов, потому что перекрестная проверка используется для оценки, а не обучения.любая помощь приветствуется.

//BUILD THE MODEL ON TRAIN SET
     J48 treeClassifier = new J48();        
     treeClassifier.setOptions(options);
    treeClassifier.buildClassifier(TrainSet);

//SET THE OPTIONS FOR CROSS-VALIDATION METHODE
    Random rand = new Random(1);
    int NoFolds = 10;
    ThresholdCurve tc = new ThresholdCurve();

 //EVALUATE THE MODEL ON TRAIN SET    
    Evaluation ModelEvalution= new Evaluation(TrainSet);
    ModelEvalution.evaluateModel(treeClassifier, TrainSet); 
    System.out.println("Train without cross Validation");
    System.out.println(ModelEvalution.toSummaryString());
    //APPLY CROSS-VALIDATION ON TRAIN SET       
    ModelEvalution.crossValidateModel(treeClassifier,TrainSet,NoFolds,rand);
    //PRINT MODEL EVALUTIION ON TRAIN SET
    System.out.println(ModelEvalution.toSummaryString());
  //EVALUATE THE MODEL ON TEST SET         
    Evaluation ModelEvalutionTest= new Evaluation(TestSet);
    ModelEvalutionTest.evaluateModel(treeClassifier, TestSet); 
   //PRINT MODEL EVALUATION ON TEST SET
    System.out.println("The testing results"); 
    System.out.println(ModelEvalutionTest.toSummaryString());
...