diff options
author | mguetlein <martin.guetlein@gmail.com> | 2012-07-27 10:19:50 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2012-07-27 10:19:50 +0200 |
commit | cd8800cf377b5b8c07dc25f3629e503f01bc9112 (patch) | |
tree | eb39c8d58fc7192ceb822bfa5cfd64261230220c | |
parent | 14f49658a0b867b4cc68242804b530548d31097f (diff) |
disable dataset cache when filtering
-rw-r--r-- | lib/dataset_cache.rb | 8 | ||||
-rwxr-xr-x | validation/validation_application.rb | 2 | ||||
-rwxr-xr-x | validation/validation_service.rb | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/lib/dataset_cache.rb b/lib/dataset_cache.rb index 7a13e9b..3f55167 100644 --- a/lib/dataset_cache.rb +++ b/lib/dataset_cache.rb @@ -4,17 +4,21 @@ module Lib module DatasetCache @@cache={} + + def self.disable() + @@cache=nil + end # same as OpenTox::Dataset.find with caching function # rational: datasets are reused in crossvalidation very often, cache to save computational effort # PENDING: may cause memory issues, test with huge datasets def self.find(dataset_uri, subjectid=nil) return nil if (dataset_uri==nil) - d = @@cache[dataset_uri.to_s+"_"+subjectid.to_s] + d = @@cache[dataset_uri.to_s+"_"+subjectid.to_s] if @@cache if d==nil LOGGER.debug "loading dataset #{dataset_uri}" d = OpenTox::Dataset.find(dataset_uri, subjectid) - @@cache[dataset_uri.to_s+"_"+subjectid.to_s] = d + @@cache[dataset_uri.to_s+"_"+subjectid.to_s] = d if @@cache end d end diff --git a/validation/validation_application.rb b/validation/validation_application.rb index eaa3ce2..9233502 100755 --- a/validation/validation_application.rb +++ b/validation/validation_application.rb @@ -587,7 +587,7 @@ post '/plain_training_test_split' do split_features = params[:split_features].split(";") if params[:split_features] result = Validation::Util.train_test_dataset_split(params[:dataset_uri], params[:prediction_feature], @subjectid, params[:stratified], params[:split_ratio], params[:random_seed], params[:missing_values], task, split_features, - params[:store_split_clusters]) + params[:store_split_clusters]=="true") content_type "text/uri-list" res = result[:training_dataset_uri]+"\n"+result[:test_dataset_uri]+"\n" LOGGER.info "plain training test split done #{res.to_s.gsub("\n"," \\n ")}" diff --git a/validation/validation_service.rb b/validation/validation_service.rb index a2e97d0..e099e25 100755 --- a/validation/validation_service.rb +++ b/validation/validation_service.rb @@ -273,6 +273,8 @@ module Validation #self.prediction_data = nil #self.save + Lib::DatasetCache.disable + raise OpenTox::BadRequestError.new "only supported for classification" if prediction!=nil and classification_statistics==nil raise OpenTox::BadRequestError.new "illegal confidence value #{min_confidence}" unless min_confidence==nil or (min_confidence.is_a?(Numeric) and min_confidence>=0 and min_confidence<=1) |