summaryrefslogtreecommitdiff
path: root/lib/predictions.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/predictions.rb')
-rwxr-xr-xlib/predictions.rb37
1 files changed, 36 insertions, 1 deletions
diff --git a/lib/predictions.rb b/lib/predictions.rb
index 56bdd22..bd32efb 100755
--- a/lib/predictions.rb
+++ b/lib/predictions.rb
@@ -18,7 +18,29 @@ module Lib
def identifier(instance_index)
return instance_index.to_s
end
-
+
+ def data
+ { :predicted_values => @predicted_values, :actual_values => @actual_values, :confidence_values => @confidence_values,
+ :feature_type => @feature_type, :accept_values => @accept_values }
+ end
+
+ def self.from_data( data, min_confidence=nil, prediction_index=nil )
+ if min_confidence!=nil
+ valid_indices = []
+ data[:confidence_values].size.times do |i|
+ valid_indices << i if prediction_index==data[:predicted_values][i] and
+ (valid_indices.size<=12 or data[:confidence_values][i]>=min_confidence)
+ end
+ [ :predicted_values, :actual_values, :confidence_values ].each do |key|
+ arr = []
+ valid_indices.each{|i| arr << data[key][i]}
+ data[key] = arr
+ end
+ end
+ Predictions.new( data[:predicted_values], data[:actual_values], data[:confidence_values],
+ data[:feature_type], data[:accept_values] )
+ end
+
def initialize( predicted_values,
actual_values,
confidence_values,
@@ -280,6 +302,15 @@ module Lib
return res
end
+ # returns acutal values for a certain prediction
+ def confusion_matrix_row(predicted_class_index)
+ r = []
+ (0..@num_classes-1).each do |actual|
+ r << @confusion_matrix[actual][predicted_class_index]
+ end
+ return r
+ end
+
def area_under_roc(class_index=nil)
return prediction_feature_value_map( lambda{ |i| area_under_roc(i) } ) if
class_index==nil
@@ -742,6 +773,10 @@ module Lib
@conf_provided
end
+ def min_confidence
+ @confidence_values[-1]
+ end
+
###################################################################################################################
#def compound(instance_index)