summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2012-06-20 15:37:30 +0200
committermguetlein <martin.guetlein@gmail.com>2012-06-20 15:37:30 +0200
commit5098d501441ffbe41238e5beb50f3d6cdd4260d0 (patch)
treec59b55fff6cfc379285fbc803ad3c905e1cb50c7
parent55fb7587400f706d983170c7f56ab741a6a302b0 (diff)
add valdiation attribute medianConfidence
-rwxr-xr-xlib/predictions.rb13
-rwxr-xr-xlib/validation_db.rb3
-rwxr-xr-xvalidation/validation_application.rb9
-rwxr-xr-xvalidation/validation_service.rb10
-rwxr-xr-xvalidation/validation_test.rb7
5 files changed, 38 insertions, 4 deletions
diff --git a/lib/predictions.rb b/lib/predictions.rb
index 00a5cdf..eb13b31 100755
--- a/lib/predictions.rb
+++ b/lib/predictions.rb
@@ -1,6 +1,15 @@
require "lib/prediction_data.rb"
+
+class Array
+
+ def median #array has to be sorted!
+ (self[size/2] + self[(size+1)/2]) / 2.0
+ end
+
+end
+
module Lib
module Util
@@ -658,6 +667,10 @@ module Lib
# data for (roc-)plots ###################################################################################
+ def median_confidence
+ @confidence_values.median if confidence_values_available?
+ end
+
def get_roc_prediction_values(class_value)
#puts "get_roc_values for class_value: "+class_value.to_s
diff --git a/lib/validation_db.rb b/lib/validation_db.rb
index 17bd506..29f2903 100755
--- a/lib/validation_db.rb
+++ b/lib/validation_db.rb
@@ -10,7 +10,7 @@ module Validation
:training_dataset_uri, :prediction_feature, :test_dataset_uri, :test_target_dataset_uri,
:prediction_dataset_uri, :date ]
VAL_PROPS_SUM = [ :num_instances, :num_without_class, :num_unpredicted ]
- VAL_PROPS_AVG = [:real_runtime, :percent_without_class, :percent_unpredicted ]
+ VAL_PROPS_AVG = [ :real_runtime, :percent_without_class, :percent_unpredicted, :median_confidence ]
VAL_PROPS = VAL_PROPS_GENERAL + VAL_PROPS_SUM + VAL_PROPS_AVG
# :crossvalidation_info
@@ -76,6 +76,7 @@ module Validation
attribute :regression_statistics_yaml
attribute :finished
attribute :prediction_data_yaml
+ attribute :median_confidence
index :model_uri
index :validation_type
diff --git a/validation/validation_application.rb b/validation/validation_application.rb
index 258a681..f9a5b1c 100755
--- a/validation/validation_application.rb
+++ b/validation/validation_application.rb
@@ -734,6 +734,15 @@ end
# return validation.send(params[:attribute])
#end
+get '/:id/migrate_median_confidence' do
+ LOGGER.debug "migrate median confidence"
+ validation = Validation::Validation[params[:id]]
+ raise OpenTox::NotFoundError.new "Validation '#{params[:id]}' not found." unless validation
+ validation.migrate_median_confidence
+ content_type "text/plain"
+ return "computed median confidence #{validation.median_confidence}"
+end
+
get '/:id' do
LOGGER.debug "get validation with id "+params[:id].to_s+" '"+request.env['HTTP_ACCEPT'].to_s+"'"
# begin
diff --git a/validation/validation_service.rb b/validation/validation_service.rb
index 5398ace..5fded24 100755
--- a/validation/validation_service.rb
+++ b/validation/validation_service.rb
@@ -233,6 +233,15 @@ module Validation
p_data.data
end
+ def migrate_median_confidence()
+ p_data = self.prediction_data
+ raise "compute prediction data before" if p_data==nil
+ predictions = Lib::OTPredictions.new(p_data)
+ self.median_confidence = predictions.median_confidence
+ self.save
+ raise unless self.valid?
+ end
+
def compute_validation_stats( save_stats=true )
p_data = self.prediction_data
raise "compute prediction data before" if p_data==nil
@@ -248,6 +257,7 @@ module Validation
self.percent_without_class = predictions.percent_without_class
self.num_unpredicted = predictions.num_unpredicted
self.percent_unpredicted = predictions.percent_unpredicted
+ self.median_confidence = predictions.median_confidence
if (save_stats)
self.finished = true
self.save
diff --git a/validation/validation_test.rb b/validation/validation_test.rb
index 5d09b8c..5a7c2aa 100755
--- a/validation/validation_test.rb
+++ b/validation/validation_test.rb
@@ -104,10 +104,11 @@ class ValidationTest < Test::Unit::TestCase
# #dataset_uri = "http://apps.ideaconsult.net:8080/ambit2/dataset/603306?feature_uris[]=http://apps.ideaconsult.net:8080/ambit2/feature/764036"
# #dataset_uri = "http://apps.ideaconsult.net:8080/ambit2/dataset/603204"
- dataset_uri = "http://local-ot/dataset/9264"
- post "/plain_training_test_split",{:dataset_uri=>dataset_uri, :stratified=>"super", :split_ratio=>0.25}
+ #dataset_uri = "http://local-ot/dataset/9264"
+ #post "/plain_training_test_split",{:dataset_uri=>dataset_uri, :stratified=>"super", :split_ratio=>0.25}
+
+ get '31355/median_confidence'
puts last_response.body
- uri = last_response.body
exit
# rep = wait_for_task(uri)