From aab3d42a990fa2d750d074ce1cbb16b1ad786bbe Mon Sep 17 00:00:00 2001 From: Joshua Eckroth Date: Mon, 25 Mar 2013 16:27:33 -0400 Subject: [PATCH] Don't print evaluation results, just collect them. --- src/clj_ml/classifiers.clj | 60 ++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/src/clj_ml/classifiers.clj b/src/clj_ml/classifiers.clj index 0834134..6d76e45 100644 --- a/src/clj_ml/classifiers.clj +++ b/src/clj_ml/classifiers.clj @@ -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.