summaryrefslogtreecommitdiff
path: root/report
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2010-05-07 14:10:27 +0200
committermguetlein <martin.guetlein@gmail.com>2010-05-07 14:10:27 +0200
commit6f437cd052fef1dfcdf2317688a78442d2d8a1f7 (patch)
tree91aa05c488293b22d07222a1629a1093013245c7 /report
parent3c7ab47857f9f86caca6cdddfe7f6ef8672db797 (diff)
fix feature encoding, add comparables report to nightly
Diffstat (limited to 'report')
-rw-r--r--report/plot_factory.rb18
-rw-r--r--report/report_factory.rb2
-rw-r--r--report/report_test.rb17
-rw-r--r--report/validation_access.rb4
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])