annotate src/MLTest.java @ 10:70510ec97f4a default tip

annotate texts with results and build events with linnaeus
author jdamerow
date Mon, 19 Nov 2012 16:36:54 -0700
parents 036535fcd179
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
036535fcd179 anteater
jdamerow
parents:
diff changeset
1 import java.io.IOException;
036535fcd179 anteater
jdamerow
parents:
diff changeset
2 import java.util.Enumeration;
036535fcd179 anteater
jdamerow
parents:
diff changeset
3
036535fcd179 anteater
jdamerow
parents:
diff changeset
4 import weka.classifiers.Classifier;
036535fcd179 anteater
jdamerow
parents:
diff changeset
5 import weka.core.Instance;
036535fcd179 anteater
jdamerow
parents:
diff changeset
6 import weka.core.Instances;
036535fcd179 anteater
jdamerow
parents:
diff changeset
7 import weka.core.converters.ConverterUtils.DataSource;
036535fcd179 anteater
jdamerow
parents:
diff changeset
8
036535fcd179 anteater
jdamerow
parents:
diff changeset
9
036535fcd179 anteater
jdamerow
parents:
diff changeset
10 public class MLTest {
036535fcd179 anteater
jdamerow
parents:
diff changeset
11
036535fcd179 anteater
jdamerow
parents:
diff changeset
12 /**
036535fcd179 anteater
jdamerow
parents:
diff changeset
13 * @param args
036535fcd179 anteater
jdamerow
parents:
diff changeset
14 */
036535fcd179 anteater
jdamerow
parents:
diff changeset
15 public static void main(String[] args) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
16 // Dataset data = null;
036535fcd179 anteater
jdamerow
parents:
diff changeset
17 // try {
036535fcd179 anteater
jdamerow
parents:
diff changeset
18 // data = FileHandler.loadDataset(new File("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/training/ApplicantTrainingDataData.data"), 0, ";");
036535fcd179 anteater
jdamerow
parents:
diff changeset
19 // } catch (IOException e1) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
20 // // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
21 // e1.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
22 // return;
036535fcd179 anteater
jdamerow
parents:
diff changeset
23 // }
036535fcd179 anteater
jdamerow
parents:
diff changeset
24 /* Contruct a KNN classifier that uses 5 neighbors to make a
036535fcd179 anteater
jdamerow
parents:
diff changeset
25 // *decision. */
036535fcd179 anteater
jdamerow
parents:
diff changeset
26 // Classifier knn = new KNearestNeighbors(5);
036535fcd179 anteater
jdamerow
parents:
diff changeset
27 // knn.buildClassifier(data);
036535fcd179 anteater
jdamerow
parents:
diff changeset
28
036535fcd179 anteater
jdamerow
parents:
diff changeset
29
036535fcd179 anteater
jdamerow
parents:
diff changeset
30 // int correct = 0, wrong = 0;
036535fcd179 anteater
jdamerow
parents:
diff changeset
31 // /* Classify all instances and check with the correct class values */
036535fcd179 anteater
jdamerow
parents:
diff changeset
32 // for (Instance inst : dataForClassification) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
33 // Object predictedClassValue = knn.classify(inst);
036535fcd179 anteater
jdamerow
parents:
diff changeset
34 // Object realClassValue = inst.classValue();
036535fcd179 anteater
jdamerow
parents:
diff changeset
35 // if (predictedClassValue == realClassValue)
036535fcd179 anteater
jdamerow
parents:
diff changeset
36 // correct++;
036535fcd179 anteater
jdamerow
parents:
diff changeset
37 // else
036535fcd179 anteater
jdamerow
parents:
diff changeset
38 // wrong++;
036535fcd179 anteater
jdamerow
parents:
diff changeset
39 // }
036535fcd179 anteater
jdamerow
parents:
diff changeset
40
036535fcd179 anteater
jdamerow
parents:
diff changeset
41 //LMT lmt = new LMT();
036535fcd179 anteater
jdamerow
parents:
diff changeset
42
036535fcd179 anteater
jdamerow
parents:
diff changeset
43 Classifier cls = null;
036535fcd179 anteater
jdamerow
parents:
diff changeset
44 try {
036535fcd179 anteater
jdamerow
parents:
diff changeset
45 cls = (Classifier) weka.core.SerializationHelper.read("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/src/LMT.model");
036535fcd179 anteater
jdamerow
parents:
diff changeset
46 } catch (Exception e1) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
47 // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
48 e1.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
49 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
50
036535fcd179 anteater
jdamerow
parents:
diff changeset
51 Instances testData = null;
036535fcd179 anteater
jdamerow
parents:
diff changeset
52 try {
036535fcd179 anteater
jdamerow
parents:
diff changeset
53 testData = DataSource.read("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/mlAnalysis/00-18565.arff");
036535fcd179 anteater
jdamerow
parents:
diff changeset
54 } catch (IOException e) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
55 // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
56 e.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
57 } catch (Exception e) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
58 // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
59 e.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
60 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
61 testData.setClassIndex(0);
036535fcd179 anteater
jdamerow
parents:
diff changeset
62
036535fcd179 anteater
jdamerow
parents:
diff changeset
63 // Instances trainData = null;
036535fcd179 anteater
jdamerow
parents:
diff changeset
64 // try {
036535fcd179 anteater
jdamerow
parents:
diff changeset
65 // trainData = DataSource.read("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/training/ApplicantTrainingDataWithoutTID.arff");
036535fcd179 anteater
jdamerow
parents:
diff changeset
66 // } catch (IOException e) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
67 // // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
68 // e.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
69 // } catch (Exception e) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
70 // // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
71 // e.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
72 // }
036535fcd179 anteater
jdamerow
parents:
diff changeset
73 // trainData.setClassIndex(0);
036535fcd179 anteater
jdamerow
parents:
diff changeset
74
036535fcd179 anteater
jdamerow
parents:
diff changeset
75 Enumeration<Instance> en = testData.enumerateInstances();
036535fcd179 anteater
jdamerow
parents:
diff changeset
76 while (en.hasMoreElements()) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
77 try {
036535fcd179 anteater
jdamerow
parents:
diff changeset
78 System.out.println(cls.classifyInstance(en.nextElement()));
036535fcd179 anteater
jdamerow
parents:
diff changeset
79 } catch (Exception e) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
80 // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
81 e.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
82 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
83 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
84
036535fcd179 anteater
jdamerow
parents:
diff changeset
85 // Evaluation eval;
036535fcd179 anteater
jdamerow
parents:
diff changeset
86 // try {
036535fcd179 anteater
jdamerow
parents:
diff changeset
87 // eval = new Evaluation(trainData);
036535fcd179 anteater
jdamerow
parents:
diff changeset
88 // double[] results = eval.evaluateModel(cls, testData);
036535fcd179 anteater
jdamerow
parents:
diff changeset
89 // Enumeration<?> en = eval.predictions().elements();
036535fcd179 anteater
jdamerow
parents:
diff changeset
90 // while (en.hasMoreElements()) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
91 // System.out.println();
036535fcd179 anteater
jdamerow
parents:
diff changeset
92 // System.out.println(en.nextElement());
036535fcd179 anteater
jdamerow
parents:
diff changeset
93 // }
036535fcd179 anteater
jdamerow
parents:
diff changeset
94 // System.out.println(eval.toMatrixString());
036535fcd179 anteater
jdamerow
parents:
diff changeset
95 // System.out.println("correct " + eval.pctCorrect());
036535fcd179 anteater
jdamerow
parents:
diff changeset
96 // System.out.println("incorrect " + eval.pctIncorrect());
036535fcd179 anteater
jdamerow
parents:
diff changeset
97 // } catch (Exception e) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
98 // // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
99 // e.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
100 // }
036535fcd179 anteater
jdamerow
parents:
diff changeset
101
036535fcd179 anteater
jdamerow
parents:
diff changeset
102 /* Wrap Weka classifier in bridge */
036535fcd179 anteater
jdamerow
parents:
diff changeset
103 // Classifier javamlsmo = new WekaClassifier(smo);
036535fcd179 anteater
jdamerow
parents:
diff changeset
104 // /* Initialize cross-validation */
036535fcd179 anteater
jdamerow
parents:
diff changeset
105 // CrossValidation cv = new CrossValidation(javamlsmo);
036535fcd179 anteater
jdamerow
parents:
diff changeset
106 // /* Perform cross-validation */
036535fcd179 anteater
jdamerow
parents:
diff changeset
107 // Map<Object, PerformanceMeasure> pm = cv.crossValidation(data);
036535fcd179 anteater
jdamerow
parents:
diff changeset
108
036535fcd179 anteater
jdamerow
parents:
diff changeset
109 // /* Load a dataset */
036535fcd179 anteater
jdamerow
parents:
diff changeset
110 // Dataset dataForClassification = null;
036535fcd179 anteater
jdamerow
parents:
diff changeset
111 // try {
036535fcd179 anteater
jdamerow
parents:
diff changeset
112 // dataForClassification = FileHandler.loadDataset(new File("/Users/jdamerow/MPIWG/EndangeredSpecies/workspace/de.mpiwg.anteater/training/ApplicantTrainingDataData.data"), 0, ";");
036535fcd179 anteater
jdamerow
parents:
diff changeset
113 // } catch (IOException e) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
114 // // TODO Auto-generated catch block
036535fcd179 anteater
jdamerow
parents:
diff changeset
115 // e.printStackTrace();
036535fcd179 anteater
jdamerow
parents:
diff changeset
116 // return;
036535fcd179 anteater
jdamerow
parents:
diff changeset
117 // }
036535fcd179 anteater
jdamerow
parents:
diff changeset
118 // int correct = 0, wrong = 0;
036535fcd179 anteater
jdamerow
parents:
diff changeset
119 // /* Classify all instances and check with the correct class values */
036535fcd179 anteater
jdamerow
parents:
diff changeset
120 // for (Instance inst : dataForClassification) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
121 // Object predictedClassValue = javamlsmo.classify(inst);
036535fcd179 anteater
jdamerow
parents:
diff changeset
122 // Object realClassValue = inst.classValue();
036535fcd179 anteater
jdamerow
parents:
diff changeset
123 // if (predictedClassValue == realClassValue)
036535fcd179 anteater
jdamerow
parents:
diff changeset
124 // correct++;
036535fcd179 anteater
jdamerow
parents:
diff changeset
125 // else
036535fcd179 anteater
jdamerow
parents:
diff changeset
126 // wrong++;
036535fcd179 anteater
jdamerow
parents:
diff changeset
127 // }
036535fcd179 anteater
jdamerow
parents:
diff changeset
128 //
036535fcd179 anteater
jdamerow
parents:
diff changeset
129
036535fcd179 anteater
jdamerow
parents:
diff changeset
130 // System.out.println("right " + correct);
036535fcd179 anteater
jdamerow
parents:
diff changeset
131 // System.out.println("wrong " + wrong);
036535fcd179 anteater
jdamerow
parents:
diff changeset
132 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
133
036535fcd179 anteater
jdamerow
parents:
diff changeset
134 }