package tr.gov.ulakbim.jDenetX.experiments; import tr.gov.ulakbim.jDenetX.classifiers.*; import tr.gov.ulakbim.jDenetX.classifiers.splits.InfoGainSplitCriterion; import tr.gov.ulakbim.jDenetX.evaluation.BasicClassificationPerformanceEvaluator; import tr.gov.ulakbim.jDenetX.evaluation.ClassificationPerformanceEvaluator; import tr.gov.ulakbim.jDenetX.evaluation.LearningEvaluation; import tr.gov.ulakbim.jDenetX.experiments.wrappers.EvalModel; import tr.gov.ulakbim.jDenetX.options.ClassOption; import tr.gov.ulakbim.jDenetX.streams.ArffFileStream; import tr.gov.ulakbim.jDenetX.streams.InstanceStream; public class ExperimentGTVS1 { private static final String trainFile = "/home/caglar/workspace/FASC/datasets/gtvs/Day1.TCP.arff"; private static final String valFile = "/home/caglar/workspace/FASC/datasets/gtvs/Day2.TCP.arff"; private static final String testFile = "/home/caglar/workspace/FASC/datasets/gtvs/SiteB.TCP.arff"; private InstanceStream trainStream = null; private InstanceStream valStream = null; private InstanceStream testStream = null; ClassificationPerformanceEvaluator evaluator; public void reInit() { if (trainStream == null) { trainStream = new ArffFileStream(trainFile, -1); } else { trainStream.restart(); } if (valStream == null) { valStream = new ArffFileStream(trainFile, -1); } else { valStream.restart(); } if (testStream == null) { testStream = new ArffFileStream(trainFile, -1); } else { testStream.restart(); } evaluator = new BasicClassificationPerformanceEvaluator(); } public void testHoeffdingOptionTree() { HoeffdingOptionTree hot = new HoeffdingOptionTree(); hot.binarySplitsOption.setValue(true); hot.splitCriterionOption.setValueViaCLIString("InfoGainSplitCriterion"); hot.splitConfidenceOption.setValue(0); hot.binarySplitsOption.setValue(false); InstanceStream trainStream = new ArffFileStream(trainFile, -1); InstanceStream testStream = new ArffFileStream(testFile, -1); EvalModel evalModel = new EvalModel(); LearningEvaluation lEval = evalModel.evalModel(trainStream, testStream, hot); System.out.println(lEval.getMeasurements()[0]); System.out.println(lEval.getMeasurements()[1]); System.out.println(lEval.getMeasurements()[2]); System.out.println(lEval.getMeasurements()[3]); System.out.println(lEval.getMeasurements()[4]); } public void testHoeffdingOptionTreeNB() { HoeffdingOptionTreeNB hot = new HoeffdingOptionTreeNB(); ClassOption splitCriterionOption = new ClassOption("splitCriterion", 's', "Split criterion to use.", InfoGainSplitCriterion.class, "InfoGainSplitCriterion"); hot.splitCriterionOption.setValueViaCLIString("InfoGainSplitCriterion"); hot.splitCriterionOption = splitCriterionOption; hot.binarySplitsOption.setValue(true); InstanceStream trainStream = new ArffFileStream(trainFile, -1); InstanceStream testStream = new ArffFileStream(testFile, -1); EvalModel evalModel = new EvalModel(); LearningEvaluation lEval = evalModel.evalModel(trainStream, testStream, hot); System.out.println(lEval.getMeasurements()[0]); System.out.println(lEval.getMeasurements()[1]); System.out.println(lEval.getMeasurements()[2]); System.out.println(lEval.getMeasurements()[3]); System.out.println(lEval.getMeasurements()[4]); } public void testHoeffdingOptionTreeNBAda() { HoeffdingOptionTreeNBAdaptive hot = new HoeffdingOptionTreeNBAdaptive(); ClassOption splitCriterionOption = new ClassOption("splitCriterion", 's', "Split criterion to use.", InfoGainSplitCriterion.class, "InfoGainSplitCriterion"); hot.splitCriterionOption.setValueViaCLIString("InfoGainSplitCriterion"); hot.splitCriterionOption = splitCriterionOption; hot.binarySplitsOption.setValue(true); InstanceStream trainStream = new ArffFileStream(trainFile, -1); InstanceStream testStream = new ArffFileStream(testFile, -1); EvalModel evalModel = new EvalModel(); LearningEvaluation lEval = evalModel.evalModel(trainStream, testStream, hot); System.out.println(lEval.getMeasurements()[0]); System.out.println(lEval.getMeasurements()[1]); System.out.println(lEval.getMeasurements()[2]); System.out.println(lEval.getMeasurements()[3]); System.out.println(lEval.getMeasurements()[4]); } public void testOzaBagASHT() { OzaBagASHT ozaBag= new OzaBagASHT(); ClassOption splitCriterionOption = new ClassOption("splitCriterion", 's', "Split criterion to use.", InfoGainSplitCriterion.class, "InfoGainSplitCriterion"); ASHoeffdingOptionTree asHoeffOpt = new ASHoeffdingOptionTree(); asHoeffOpt.splitCriterionOption.setValueViaCLIString("InfoGainSplitCriterion"); asHoeffOpt.splitCriterionOption = splitCriterionOption; asHoeffOpt.binarySplitsOption.setValue(true); InstanceStream trainStream = new ArffFileStream(trainFile, -1); InstanceStream testStream = new ArffFileStream(testFile, -1); EvalModel evalModel = new EvalModel(); LearningEvaluation lEval = evalModel.evalModel(trainStream, testStream, ozaBag); System.out.println(lEval.getMeasurements()[0]); System.out.println(lEval.getMeasurements()[1]); System.out.println(lEval.getMeasurements()[2]); System.out.println(lEval.getMeasurements()[3]); System.out.println(lEval.getMeasurements()[4]); } public void testOzaBoostASHT() { } public void testOzaBag() { } public void testRandomHoeffdingTree() { } public void testRandomHoeffdingTreeNB() { } public void testActiveClusterBaggingASHT() { } public void testOzaBagASHOT() { } public void testOzaBoostASHOT() { } public void testSelfOzaBoostID() { } public void testSelfOzaBoostASHOT() { } public void testRandomHoeffdingTreeNBAda() { } public static void main(String[] args) { ExperimentGTVS1 expGTVS1 = new ExperimentGTVS1(); expGTVS1.reInit(); System.out.println("Hoeffding Option Tree Test has been started"); expGTVS1.testHoeffdingOptionTree(); expGTVS1.reInit(); System.out.println("Hoeffding Option NB Tree Test has been started"); expGTVS1.testHoeffdingOptionTreeNB(); expGTVS1.reInit(); System.out.println("Hoeffding Option NB Tree Adaptive Test has been started"); expGTVS1.testHoeffdingOptionTreeNBAda(); } }