lib/stamina/scoring.rb in stamina-0.3.1 vs lib/stamina/scoring.rb in stamina-0.4.0
- old
+ new
@@ -169,8 +169,45 @@
def harmonic_balanced_classification_rate
2.0 * (sensitivity * specificity) / (sensitivity + specificity)
end
alias :hbcr :harmonic_balanced_classification_rate
alias :harmonic_bcr :harmonic_balanced_classification_rate
+
+ MEASURES = [
+ :false_positive, :false_negative,
+ :true_positive, :true_negative,
+ :accuracy, :error_rate,
+ :precision, :recall, :f_measure,
+ :false_positive_rate, :false_negative_rate,
+ :true_positive_rate, :true_negative_rate,
+ :positive_predictive_value, :negative_predictive_value,
+ :sensitivity, :specificity,
+ :positive_likelihood, :negative_likelihood,
+ :balanced_classification_rate, :balanced_error_rate, :harmonic_bcr
+ ]
+
+ def to_h
+ h = {}
+ MEASURES.each do |m|
+ h[m] = self.send(m.to_sym)
+ end
+ h
+ end
+
+ def to_s
+ s = ""
+ MEASURES.each do |m|
+ vals = case val = self.send(m.to_sym)
+ when Integer
+ "%s" % val
+ when Float
+ "%.5f" % val
+ else
+ "%s" % val
+ end
+ s += "%30s: %10s\n" % [m.to_s, vals]
+ end
+ s
+ end
end # module Scoring
end # module Stamina