Mercurial > hg > anteater
diff src/MLTest.java @ 0:036535fcd179
anteater
author | jdamerow |
---|---|
date | Fri, 14 Sep 2012 10:30:43 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/MLTest.java Fri Sep 14 10:30:43 2012 +0200 @@ -0,0 +1,134 @@ +import java.io.IOException; +import java.util.Enumeration; + +import weka.classifiers.Classifier; +import weka.core.Instance; +import weka.core.Instances; +import weka.core.converters.ConverterUtils.DataSource; + + +public class MLTest { + + /** + * @param args + */ + public static void main(String[] args) { +// Dataset data = null; +// try { +// data = FileHandler.loadDataset(new File("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/training/ApplicantTrainingDataData.data"), 0, ";"); +// } catch (IOException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// return; +// } + /* Contruct a KNN classifier that uses 5 neighbors to make a +// *decision. */ +// Classifier knn = new KNearestNeighbors(5); +// knn.buildClassifier(data); + + +// int correct = 0, wrong = 0; +// /* Classify all instances and check with the correct class values */ +// for (Instance inst : dataForClassification) { +// Object predictedClassValue = knn.classify(inst); +// Object realClassValue = inst.classValue(); +// if (predictedClassValue == realClassValue) +// correct++; +// else +// wrong++; +// } + + //LMT lmt = new LMT(); + + Classifier cls = null; + try { + cls = (Classifier) weka.core.SerializationHelper.read("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/src/LMT.model"); + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + Instances testData = null; + try { + testData = DataSource.read("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/mlAnalysis/00-18565.arff"); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + testData.setClassIndex(0); + +// Instances trainData = null; +// try { +// trainData = DataSource.read("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/training/ApplicantTrainingDataWithoutTID.arff"); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (Exception e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// trainData.setClassIndex(0); + + Enumeration<Instance> en = testData.enumerateInstances(); + while (en.hasMoreElements()) { + try { + System.out.println(cls.classifyInstance(en.nextElement())); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + +// Evaluation eval; +// try { +// eval = new Evaluation(trainData); +// double[] results = eval.evaluateModel(cls, testData); +// Enumeration<?> en = eval.predictions().elements(); +// while (en.hasMoreElements()) { +// System.out.println(); +// System.out.println(en.nextElement()); +// } +// System.out.println(eval.toMatrixString()); +// System.out.println("correct " + eval.pctCorrect()); +// System.out.println("incorrect " + eval.pctIncorrect()); +// } catch (Exception e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + + /* Wrap Weka classifier in bridge */ +// Classifier javamlsmo = new WekaClassifier(smo); +// /* Initialize cross-validation */ +// CrossValidation cv = new CrossValidation(javamlsmo); +// /* Perform cross-validation */ +// Map<Object, PerformanceMeasure> pm = cv.crossValidation(data); + +// /* Load a dataset */ +// Dataset dataForClassification = null; +// try { +// dataForClassification = FileHandler.loadDataset(new File("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/training/ApplicantTrainingDataData.data"), 0, ";"); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// return; +// } +// int correct = 0, wrong = 0; +// /* Classify all instances and check with the correct class values */ +// for (Instance inst : dataForClassification) { +// Object predictedClassValue = javamlsmo.classify(inst); +// Object realClassValue = inst.classValue(); +// if (predictedClassValue == realClassValue) +// correct++; +// else +// wrong++; +// } +// + +// System.out.println("right " + correct); +// System.out.println("wrong " + wrong); + } + +}