From 221ea813d2479a16c489b1940efd87f4afce3f8c Mon Sep 17 00:00:00 2001 From: Hai Liu Date: Wed, 20 Apr 2016 09:48:26 +0800 Subject: Add classfier to predictor JIRA: PREDICTION-40 Change-Id: I0b35d13a4ad1dab0f32fe7df7fea3de4d40eeb0e --- src/predictor/ClassifierAdapter.java | 76 ++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/predictor/ClassifierAdapter.java diff --git a/src/predictor/ClassifierAdapter.java b/src/predictor/ClassifierAdapter.java new file mode 100644 index 0000000..79dab7e --- /dev/null +++ b/src/predictor/ClassifierAdapter.java @@ -0,0 +1,76 @@ +package predictor; + +import java.util.Random; + +import org.apache.log4j.*; + +import weka.core.*; +import weka.classifiers.*; + +public class ClassifierAdapter implements PredictorInterface { + protected Logger logger = Logger.getLogger(ClassifierAdapter.class); + + protected String name; + protected Classifier classifier; + protected Evaluation eval; + + public ClassifierAdapter(Classifier classifier, String name) { + this.classifier = classifier; + this.name = name; + } + + @Override + public String getName() { + return this.name; + } + + @Override + public void crossValidate(Instances instances, int numFold, Random rand) throws Exception { + eval = new Evaluation(instances); + eval.crossValidateModel(this.classifier, instances, numFold, rand); + } + + public String getEvaluationSummaryString() { + return this.eval.toSummaryString(); + } + + public String getEvaluationMatrixString() throws Exception { + return this.eval.toMatrixString(); + } + + public FastVector getEvaluationPredictions() { + return eval.predictions(); + } + + @Override + public void train(Instances instances) throws Exception { + this.classifier.buildClassifier(instances); + } + + @Override + public int predict(Instance instance) throws Exception { + this.classifier.classifyInstance(instance); + return 0; + } + + @Override + public int predict(Instances instances) throws Exception { + for (int i=0;i