summaryrefslogtreecommitdiff
path: root/lib/predictions.rb
diff options
context:
space:
mode:
authorMartin Gütlein <martin.guetlein@gmail.com>2010-02-23 15:01:26 +0100
committerMartin Gütlein <martin.guetlein@gmail.com>2010-02-23 15:01:26 +0100
commit5c62857e2508efd5001ca0903f8afa49c85904a2 (patch)
tree84b94e31ec275b56e24a64c2f9638508dca9eb24 /lib/predictions.rb
parent98c03ab8e7631977fb15bb35a035a150e04f61ed (diff)
disable validation logger init, add new roc plot functionality
Diffstat (limited to 'lib/predictions.rb')
-rw-r--r--lib/predictions.rb30
1 files changed, 12 insertions, 18 deletions
diff --git a/lib/predictions.rb b/lib/predictions.rb
index 7474761..5a43d24 100644
--- a/lib/predictions.rb
+++ b/lib/predictions.rb
@@ -62,7 +62,7 @@ module Lib
init_stats()
(0..@predicted_values.size-1).each do |i|
update_stats( @predicted_values[i], @actual_values[i], @confidence_values[i] )
- end
+ end
end
def init_stats
@@ -181,6 +181,7 @@ module Lib
# hash with keys: hash{ :confusion_matrix_actual => <class_value>, :confusion_matrix_predicted => <class_value> }
# and values: <int-value>
def confusion_matrix
+
raise "no classification" unless @is_classification
res = {}
(0..@num_classes-1).each do |actual|
@@ -383,28 +384,21 @@ module Lib
# data for roc-plots ###################################################################################
- def roc_confidence_values(class_value)
+ def get_roc_values(class_value)
+
class_index = @prediction_feature_values.index(class_value)
raise "class not found "+class_value.to_s if class_index==nil and class_value!=nil
- res = []
- (0..@predicted_values.size-1).each do |i|
- res.push(@confidence_values[i]) if (class_value==nil or @predicted_values[i]==class_index)
- end
- return res
- end
-
- def roc_actual_values(class_value)
- class_index = @prediction_feature_values.index(class_value)
- raise "class not found "+class_value.to_s if class_index==nil
- res = []
+
+ c = []; p = []; a = []
(0..@predicted_values.size-1).each do |i|
- if class_value!=nil
- res.push( @actual_values[i]==class_index ? 1 : 0 ) if @predicted_values[i]==class_index
- else
- res.push( @actual_values[i]==@predicted_values[i] ? 1 : 0 )
+ # NOTE: not predicted instances are ignored here
+ if (@predicted_values[i]!=nil and (class_value==nil or @predicted_values[i]==class_index))
+ c << @confidence_values[i]
+ p << @predicted_values[i]
+ a << @actual_values[i]
end
end
- return res
+ return {:predicted_values => p, :actual_values => a, :confidence_values => c}
end
########################################################################################