diff options
author | mguetlein <martin.guetlein@gmail.com> | 2012-06-20 15:37:30 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2012-06-20 15:37:30 +0200 |
commit | 5098d501441ffbe41238e5beb50f3d6cdd4260d0 (patch) | |
tree | c59b55fff6cfc379285fbc803ad3c905e1cb50c7 | |
parent | 55fb7587400f706d983170c7f56ab741a6a302b0 (diff) |
add valdiation attribute medianConfidence
-rwxr-xr-x | lib/predictions.rb | 13 | ||||
-rwxr-xr-x | lib/validation_db.rb | 3 | ||||
-rwxr-xr-x | validation/validation_application.rb | 9 | ||||
-rwxr-xr-x | validation/validation_service.rb | 10 | ||||
-rwxr-xr-x | validation/validation_test.rb | 7 |
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) |