public static Instances getKnowledgeBase() { if (knowledgeBase == null) { try { // load knowledgebase from file CreateAppInsertIntoVm.knowledgeBase = Action.loadKnowledge(Configuration.getInstance().getKBCreateAppInsertIntoVm()); // prediction is also performed therefore the classifier and the evaluator must be // instantiated if (!isOnlyLearning()) { System.out.println("Classify data CreateAppInsertInto"); if (knowledgeBase.numInstances() > 0) { classifier = new MultilayerPerceptron(); classifier.buildClassifier(knowledgeBase); evaluation = new Evaluation(knowledgeBase); evaluation.crossValidateModel( classifier, knowledgeBase, 10, knowledgeBase.getRandomNumberGenerator(randomData.nextLong(1, 1000))); System.out.println("Classified data CreateAppInsertInto"); } else { System.out.println("No Instancedata for classifier CreateAppInsertIntoVm"); } } } catch (Exception e) { e.printStackTrace(); } } return knowledgeBase; }
// Create 70% training data set public void generateTrainingDataSet() { trainingDataSet = new Instances(instances); int size = trainingDataSet.numInstances(); // Remove closing prize "close" attribute trainingDataSet.deleteAttributeAt(0); // Randomize data set trainingDataSet.randomize(trainingDataSet.getRandomNumberGenerator(1)); }
/** runs 10fold CV over the training file */ public void execute() throws Exception { // run filter m_Filter.setInputFormat(m_Training); Instances filtered = Filter.useFilter(m_Training, m_Filter); // train classifier on complete file for tree m_Classifier.buildClassifier(filtered); // 10fold CV with seed=1 m_Evaluation = new Evaluation(filtered); m_Evaluation.crossValidateModel( m_Classifier, filtered, 10, m_Training.getRandomNumberGenerator(1)); }