Class ClassifierEvaluator

java.lang.Object
deepnetts.eval.ClassifierEvaluator
All Implemented Interfaces:
javax.visrec.ml.eval.Evaluator<NeuralNetwork, javax.visrec.ml.data.DataSet<? extends MLDataItem>>

public class ClassifierEvaluator extends Object implements javax.visrec.ml.eval.Evaluator<NeuralNetwork, javax.visrec.ml.data.DataSet<? extends MLDataItem>>
Evaluation method for binary and multi-class classifiers. Calculates classification performance metrics, how good is it at predicting class of something. http://www.ritchieng.com/machine-learning-evaluate-classification-model/ http://scikit-learn.org/stable/modules/model_evaluation.html http://notesbyanerd.com/2014/12/17/multi-class-performance-measures/ https://en.wikipedia.org/wiki/Confusion_matrix https://stats.stackexchange.com/questions/21551/how-to-compute-precision-recall-for-multiclass-multilabel-classification http://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix Micro and macro averaging: https://datascience.stackexchange.com/questions/15989/micro-average-vs-macro-average-performance-in-a-multiclass-classification-settin I'm doing macro
  • Constructor Details

    • ClassifierEvaluator

      public ClassifierEvaluator()
  • Method Details

    • evaluate

      public ClassificationMetrics evaluate(NeuralNetwork neuralNet, javax.visrec.ml.data.DataSet<? extends MLDataItem> testSet)
      Performs classifier evaluation and returns classification performance metrics.
      Specified by:
      evaluate in interface javax.visrec.ml.eval.Evaluator<NeuralNetwork, javax.visrec.ml.data.DataSet<? extends MLDataItem>>
      Parameters:
      neuralNet -
      testSet -
      Returns:
    • getThreshold

      public float getThreshold()
    • setThreshold

      public void setThreshold(float threshold)
    • getMacroAverage

      public ClassificationMetrics getMacroAverage()
    • macroAverage

      public static javax.visrec.ml.eval.EvaluationMetrics macroAverage(Collection<javax.visrec.ml.eval.EvaluationMetrics> metrics)
      Calculates macro average for the given list of ClassificationMetrics. Used for multi-class classification. Its suitable for balanced classes, but if not micro averaging is more suitable. Micro averaging is summing confusion matrices for individual classes.
      Parameters:
      metrics -
      Returns:
    • getMetricsByClass

      public Map<String, ClassificationMetrics> getMetricsByClass()
    • getConfusionMatrix

      public ConfusionMatrix getConfusionMatrix()
    • toString

      public String toString()
      Overrides:
      toString in class Object