summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2010-07-12 10:55:23 +0200
committermguetlein <martin.guetlein@gmail.com>2010-07-12 10:55:23 +0200
commitd4d80a8240f3d0c4eebed2c6926bf9a8aebb693f (patch)
tree7c9eb308fb448c69a556c5d4275bf33f05050aba
parent0b83f4969d73ec0e26e095c23f2505e5319740d9 (diff)
completing regression/statistics fix
-rw-r--r--report/report_factory.rb4
-rw-r--r--report/validation_data.rb8
-rw-r--r--test/test_examples.rb52
-rw-r--r--test/test_examples_util.rb8
-rw-r--r--validation/validation_test.rb12
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