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);
+	}
+
+}