diff options
author | mguetlein <martin.guetlein@gmail.com> | 2010-05-07 14:10:27 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2010-05-07 14:10:27 +0200 |
commit | 6f437cd052fef1dfcdf2317688a78442d2d8a1f7 (patch) | |
tree | 91aa05c488293b22d07222a1629a1093013245c7 /report | |
parent | 3c7ab47857f9f86caca6cdddfe7f6ef8672db797 (diff) |
fix feature encoding, add comparables report to nightly
Diffstat (limited to 'report')
-rw-r--r-- | report/plot_factory.rb | 18 | ||||
-rw-r--r-- | report/report_factory.rb | 2 | ||||
-rw-r--r-- | report/report_test.rb | 17 | ||||
-rw-r--r-- | report/validation_access.rb | 4 |
4 files changed, 31 insertions, 10 deletions
diff --git a/report/plot_factory.rb b/report/plot_factory.rb index e248540..c5ea59f 100644 --- a/report/plot_factory.rb +++ b/report/plot_factory.rb @@ -188,6 +188,24 @@ module Reports a = roc_values[:actual_values] raise "no prediction values for roc-plot" if p.size==0 + # hack for painting perfect/worst roc curve, otherwhise fp/tp-rate will always be 100% + # determine if perfect/worst roc curve + fp_found = false + tp_found = false + (0..p.size-1).each do |i| + if a[i]!=p[i] + fp_found |= true + else + tp_found |=true + end + break if tp_found and fp_found + end + unless fp_found and tp_found #if perfect/worst add wrong/right instance with lowest confidence + a << (tp_found ? 0 : 1) + p << 1 + c << -Float::MAX + end + (0..p.size-2).each do |i| ((i+1)..p.size-1).each do |j| if c[i]<c[j] diff --git a/report/report_factory.rb b/report/report_factory.rb index 3cc4dfe..63a841e 100644 --- a/report/report_factory.rb +++ b/report/report_factory.rb @@ -109,7 +109,7 @@ module Reports::ReportFactory #validation_set.to_array([:test_dataset_uri, :model_uri, :algorithm_uri], false).each{|a| puts a.inspect} raise Reports::BadRequest.new("num validations is not >1") unless validation_set.size>1 raise Reports::BadRequest.new("validations must be either all regression, "+ - +"or all classification validations") unless validation_set.all_classification? or validation_set.all_regression? + "or all classification validations") unless validation_set.all_classification? or validation_set.all_regression? raise Reports::BadRequest.new("number of different algorithms <2: "+ validation_set.get_values(:algorithm_uri).inspect) if validation_set.num_different_values(:algorithm_uri)<2 diff --git a/report/report_test.rb b/report/report_test.rb index 84fc178..0849ad7 100644 --- a/report/report_test.rb +++ b/report/report_test.rb @@ -31,18 +31,21 @@ class Reports::ApplicationTest < Test::Unit::TestCase #get '/report/validation/1',nil,'HTTP_ACCEPT' => "text/html" #post '/report/validation/1/format_html',:css_style_sheet=>"http://apps.ideaconsult.net:8180/ToxPredict/style/global.css" - post 'http://ot.validation.de/report/validation',:validation_uris=>"http://ot.validation.de/validation/90" + post 'http://ot.validation.de/report/validation',:validation_uris=>"http://ot.validation.de/1" puts last_response.body.to_s #post 'http://ot.validation.de/report/crossvalidation',:validation_uris=>"http://ot.validation.de/crossvalidation/1" #uri = last_response.body.to_s -# post 'http://ot.validation.de/report/algorithm_comparison',:validation_uris=>"http://ot.validation.de/validation/15\n"+ -# "http://ot.validation.de/validation/16\n"+ -# "http://ot.validation.de/validation/18\n" -# uri = last_response.body.to_s -# puts uri -# + #val_uris = ["http://ot.validation.de/29","http://ot.validation.de/30" ] + + #post 'http://ot.validation.de/report/algorithm_comparison',:validation_uris=>val_uris.join("\n") + #uri = last_response.body.to_s + #puts uri + + #rep = Reports::ReportService.new("http://some.location") + #rep.create_report("algorithm_comparison", val_uris) + # post uri.to_s+'/format_html',:css_style_sheet=>"http://apps.ideaconsult.net:8180/ToxPredict/style/global.css" # puts last_response.body.to_s.gsub(/\n.*/,"") diff --git a/report/validation_access.rb b/report/validation_access.rb index ffac11d..6896c96 100644 --- a/report/validation_access.rb +++ b/report/validation_access.rb @@ -72,8 +72,8 @@ class Reports::ValidationDB < Reports::ValidationAccess raise Reports::BadRequest.new "not a validation uri: "+uri.to_s unless uri =~ /.*\/[0-9]+/ validation_id = uri.split("/")[-1] - v = Lib::Validation.get(validation_id) - raise Reports::BadRequest.new "no validation found with id "+validation_id.to_s unless v + v = Lib::Validation.first({:id => validation_id}) #, :uri => uri}) + raise Reports::BadRequest.new "no validation found with id "+validation_id.to_s unless v #+" and uri "+uri.to_s unless v (Lib::VAL_PROPS + Lib::VAL_CV_PROPS).each do |p| validation.send("#{p.to_s}=".to_sym, v[p]) |