Don't print evaluation results, just collect them.

This commit is contained in:
Joshua Eckroth 2013-03-25 16:27:33 -04:00
parent d49820eda5
commit aab3d42a99

View file

@ -490,38 +490,36 @@
;; Evaluating classifiers
(defn- collect-evaluation-results
"Collects all the statistics from the evaluation of a classifier."
"Collects all the statistics from the evaluation of a classifier."
([class-labels ^Evaluation evaluation]
(do
(println (.toMatrixString evaluation))
(println "=== Summary ===")
(println (.toSummaryString evaluation))
{:correct (try-metric #(.correct evaluation))
:incorrect (try-metric #(.incorrect evaluation))
:unclassified (try-metric #(.unclassified evaluation))
:percentage-correct (try-metric #(.pctCorrect evaluation))
:percentage-incorrect (try-metric #(.pctIncorrect evaluation))
:percentage-unclassified (try-metric #(.pctUnclassified evaluation))
:error-rate (try-metric #(.errorRate evaluation))
:mean-absolute-error (try-metric #(.meanAbsoluteError evaluation))
:relative-absolute-error (try-metric #(.relativeAbsoluteError evaluation))
:root-mean-squared-error (try-metric #(.rootMeanSquaredError evaluation))
:root-relative-squared-error (try-metric #(.rootRelativeSquaredError evaluation))
:correlation-coefficient (try-metric #(.correlationCoefficient evaluation))
:average-cost (try-metric #(.avgCost evaluation))
:kappa (try-metric #(.kappa evaluation))
:kb-information (try-metric #(.KBInformation evaluation))
:kb-mean-information (try-metric #(.KBMeanInformation evaluation))
:kb-relative-information (try-metric #(.KBRelativeInformation evaluation))
:sf-entropy-gain (try-metric #(.SFEntropyGain evaluation))
:sf-mean-entropy-gain (try-metric #(.SFMeanEntropyGain evaluation))
:roc-area (try-multiple-values-metric class-labels (fn [i] (try-metric #(.areaUnderROC evaluation i))))
:false-positive-rate (try-multiple-values-metric class-labels (fn [i] (try-metric #(.falsePositiveRate evaluation i))))
:false-negative-rate (try-multiple-values-metric class-labels (fn [i] (try-metric #(.falseNegativeRate evaluation i))))
:f-measure (try-multiple-values-metric class-labels (fn [i] (try-metric #(.fMeasure evaluation i))))
:precision (try-multiple-values-metric class-labels (fn [i] (try-metric #(.precision evaluation i))))
:recall (try-multiple-values-metric class-labels (fn [i] (try-metric #(.recall evaluation i))))
:evaluation-object evaluation})))
{:confusion-matrix (.toMatrixString evaluation)
:summary (.toSummaryString evaluation)
:correct (try-metric #(.correct evaluation))
:incorrect (try-metric #(.incorrect evaluation))
:unclassified (try-metric #(.unclassified evaluation))
:percentage-correct (try-metric #(.pctCorrect evaluation))
:percentage-incorrect (try-metric #(.pctIncorrect evaluation))
:percentage-unclassified (try-metric #(.pctUnclassified evaluation))
:error-rate (try-metric #(.errorRate evaluation))
:mean-absolute-error (try-metric #(.meanAbsoluteError evaluation))
:relative-absolute-error (try-metric #(.relativeAbsoluteError evaluation))
:root-mean-squared-error (try-metric #(.rootMeanSquaredError evaluation))
:root-relative-squared-error (try-metric #(.rootRelativeSquaredError evaluation))
:correlation-coefficient (try-metric #(.correlationCoefficient evaluation))
:average-cost (try-metric #(.avgCost evaluation))
:kappa (try-metric #(.kappa evaluation))
:kb-information (try-metric #(.KBInformation evaluation))
:kb-mean-information (try-metric #(.KBMeanInformation evaluation))
:kb-relative-information (try-metric #(.KBRelativeInformation evaluation))
:sf-entropy-gain (try-metric #(.SFEntropyGain evaluation))
:sf-mean-entropy-gain (try-metric #(.SFMeanEntropyGain evaluation))
:roc-area (try-multiple-values-metric class-labels (fn [i] (try-metric #(.areaUnderROC evaluation i))))
:false-positive-rate (try-multiple-values-metric class-labels (fn [i] (try-metric #(.falsePositiveRate evaluation i))))
:false-negative-rate (try-multiple-values-metric class-labels (fn [i] (try-metric #(.falseNegativeRate evaluation i))))
:f-measure (try-multiple-values-metric class-labels (fn [i] (try-metric #(.fMeasure evaluation i))))
:precision (try-multiple-values-metric class-labels (fn [i] (try-metric #(.precision evaluation i))))
:recall (try-multiple-values-metric class-labels (fn [i] (try-metric #(.recall evaluation i))))
:evaluation-object evaluation}))
(defmulti classifier-evaluate
"Evaluates a trained classifier using the provided dataset or cross-validation.