diff options
author | Hai Liu <hai.liu@huawei.com> | 2016-04-20 02:18:58 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@172.30.200.206> | 2016-04-20 02:18:58 +0000 |
commit | a2f8c74c7588f71848451a18fe17a0a68a693fd0 (patch) | |
tree | d175c69b4a332c3a46b0c43cdf1938282db88f66 | |
parent | b6390d4f82f92ae9d2a9d11498d5f5b2306c0d42 (diff) | |
parent | 221ea813d2479a16c489b1940efd87f4afce3f8c (diff) |
Merge "Add classfier to predictor JIRA: PREDICTION-40"
-rw-r--r-- | src/predictor/ClassifierAdapter.java | 76 |
1 files changed, 76 insertions, 0 deletions
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<instances.numInstances();i++) { + this.predict(instances.instance(i)); + } + return 0; + } + + @Override + public String getEvaluationResults() throws Exception { + String results = "\n-- "; + results += this.getName(); + results += " --\n"; + results += this.eval.toSummaryString(); + results += this.eval.toMatrixString(); + results += this.eval.toClassDetailsString(); + results += "\n"; + return results; + } +} + |