diff options
author | mguetlein <martin.guetlein@gmail.com> | 2010-07-12 10:55:23 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2010-07-12 10:55:23 +0200 |
commit | d4d80a8240f3d0c4eebed2c6926bf9a8aebb693f (patch) | |
tree | 7c9eb308fb448c69a556c5d4275bf33f05050aba | |
parent | 0b83f4969d73ec0e26e095c23f2505e5319740d9 (diff) |
completing regression/statistics fix
-rw-r--r-- | report/report_factory.rb | 4 | ||||
-rw-r--r-- | report/validation_data.rb | 8 | ||||
-rw-r--r-- | test/test_examples.rb | 52 | ||||
-rw-r--r-- | test/test_examples_util.rb | 8 | ||||
-rw-r--r-- | validation/validation_test.rb | 12 |
5 files changed, 73 insertions, 11 deletions
diff --git a/report/report_factory.rb b/report/report_factory.rb index 2e579a5..646ecfd 100644 --- a/report/report_factory.rb +++ b/report/report_factory.rb @@ -31,8 +31,6 @@ module Reports::ReportFactory # def self.create_report(type, validation_set) case type - when RT_FASTTOX - raise "not yet implemented" when RT_VALIDATION create_report_validation(validation_set) when RT_CV @@ -40,7 +38,7 @@ module Reports::ReportFactory when RT_ALG_COMP create_report_compare_algorithms(validation_set) else - raise "unknown report type" + raise "unknown report type "+type.to_s end end diff --git a/report/validation_data.rb b/report/validation_data.rb index d87e491..0a25e87 100644 --- a/report/validation_data.rb +++ b/report/validation_data.rb @@ -19,7 +19,13 @@ end class Object def to_nice_s - return "%.2f" % self if is_a?(Float) + if is_a?(Float) + if self>0.01 + return "%.2f" % self + else + return self.to_s + end + end return collect{ |i| i.to_nice_s }.join(", ") if is_a?(Array) return collect{ |i,j| i.to_nice_s+": "+j.to_nice_s }.join(", ") if is_a?(Hash) return to_s diff --git a/test/test_examples.rb b/test/test_examples.rb index beeaa30..e65e03d 100644 --- a/test/test_examples.rb +++ b/test/test_examples.rb @@ -9,6 +9,53 @@ end module ValidationExamples + class IrisCrossvalidation < CrossValidation + def initialize + @dataset_file = File.new("data/IRIS_unitrisk.yaml","r") + @prediction_feature = "http://ot-dev.in-silico.ch/toxcreate/feature#IRIS%20unit%20risk" + @num_folds = 10 + end + end + + class MajorityIrisCrossvalidation < IrisCrossvalidation + def initialize + @algorithm_uri = File.join(@@config[:services]["opentox-majority"],"/regr/algorithm") + super + end + end + + class LazarIrisCrossvalidation < IrisCrossvalidation + def initialize + @algorithm_uri = File.join(@@config[:services]["opentox-algorithm"],"lazar") + @algorithm_params = "feature_generation_uri="+File.join(@@config[:services]["opentox-algorithm"],"fminer") + super + end + end + + ######################################################################################################## + + class IrisSplit < SplitTestValidation + def initialize + @dataset_file = File.new("data/IRIS_unitrisk.yaml","r") + @prediction_feature = "http://ot-dev.in-silico.ch/toxcreate/feature#IRIS%20unit%20risk" + end + end + + class LazarIrisSplit < IrisSplit + def initialize + @algorithm_uri = File.join(@@config[:services]["opentox-algorithm"],"lazar") + @algorithm_params = "feature_generation_uri="+File.join(@@config[:services]["opentox-algorithm"],"fminer") + super + end + end + + class MajorityIrisSplit < IrisSplit + def initialize + @algorithm_uri = File.join(@@config[:services]["opentox-majority"],"/regr/algorithm") + super + end + end + ######################################################################################################## class HamsterSplit < SplitTestValidation @@ -192,6 +239,11 @@ module ValidationExamples "6b" => [ MLR_NTUA_CacoTrainingTest ], "6c" => [ MLR_NTUA2_CacoTrainingTest ], "6d" => [ MajorityCacoTrainingTest ], + + "7a" => [ LazarIrisSplit ], + "7b" => [ MajorityIrisSplit ], + + "8b" => [ MajorityIrisCrossvalidation ], } def self.list diff --git a/test/test_examples_util.rb b/test/test_examples_util.rb index 582b814..09f7d6c 100644 --- a/test/test_examples_util.rb +++ b/test/test_examples_util.rb @@ -114,11 +114,15 @@ module ValidationExamples assert_int_equal(predictions, num_instances-num_unpredicted) else regr_stats = val["regression_statistics".to_sym] - assert regr_stats!=nil + assert_not_nil regr_stats end end - private + private + def self.assert_not_nil(val,msg_suffix=nil) + raise msg_suffix.to_s+" is nil" if val==nil + end + def self.assert_int_equal(val1,val2,msg_suffix=nil) raise msg_suffix.to_s+" not equal: "+val1.to_s+" != "+val2.to_s unless val1==val2 end diff --git a/validation/validation_test.rb b/validation/validation_test.rb index ce53c99..a6ddb90 100644 --- a/validation/validation_test.rb +++ b/validation/validation_test.rb @@ -15,24 +15,26 @@ class ValidationTest < Test::Unit::TestCase include Lib::TestUtil def test_it - #$test_case = self + $test_case = self + + get "/crossvalidation/4/statistics" # post "",:model_uri=>"http://localhost/model/1",:test_dataset_uri=>"http://localhost/dataset/3", # :test_target_dataset_uri=>"http://localhost/dataset/1" #get "/crossvalidation/1",nil,'HTTP_ACCEPT' => "application/rdf+xml" - #puts last_response.body + puts last_response.body # post "/test_validation",:select=>"6d" #,:report=>"yes,please" # puts last_response.body - #run_test("1b") #, "http://localhost/validation/321") - #run_test("3b", "http://localhost/validation/crossvalidation/1") + #run_test("8b") #,"http://localhost/validation/report/validation/36") #, "http://localhost/validation/321") + #run_test("8b", "http://localhost/validation/crossvalidation/4") #puts Nightly.build_nightly("1") #prepare_examples - do_test_examples # USES CURL, DO NOT FORGET TO RESTART VALIDATION SERVICE + #do_test_examples # USES CURL, DO NOT FORGET TO RESTART VALIDATION SERVICE end def app |