From d5bf97c2cb999539c56bf59aa1d7d3286745be84 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Wed, 23 Sep 2015 14:51:41 +0200 Subject: validations fixed (all models were executed with default parameters) --- test/validation.rb | 66 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 6 deletions(-) (limited to 'test/validation.rb') diff --git a/test/validation.rb b/test/validation.rb index dfa2c81..9717ccc 100644 --- a/test/validation.rb +++ b/test/validation.rb @@ -20,10 +20,25 @@ class ValidationTest < MiniTest::Test end def test_regression_crossvalidation - #dataset = Dataset.from_csv_file "#{DATA_DIR}/EPAFHM.medi.csv" - dataset = Dataset.from_csv_file "#{DATA_DIR}/EPAFHM.csv" - model = Model::LazarRegression.create dataset + dataset = Dataset.from_csv_file "#{DATA_DIR}/EPAFHM.medi.csv" + #dataset = Dataset.from_csv_file "#{DATA_DIR}/EPAFHM.csv" + params = { + :prediction_algorithm => "OpenTox::Algorithm::Regression.weighted_average", + :neighbor_algorithm => "fingerprint_neighbors", + :neighbor_algorithm_parameters => { + :type => "MACCS", + :min_sim => 0.7, + } + } + model = Model::LazarRegression.create dataset, params cv = RegressionCrossValidation.create model + cv.validation_ids.each do |vid| + model = Model::Lazar.find(Validation.find(vid).model_id) + assert_equal params[:neighbor_algorithm_parameters][:type], model[:neighbor_algorithm_parameters][:type] + assert_equal params[:neighbor_algorithm_parameters][:min_sim], model[:neighbor_algorithm_parameters][:min_sim] + refute_equal params[:neighbor_algorithm_parameters][:training_dataset_id], model[:neighbor_algorithm_parameters][:training_dataset_id] + end + #`inkview #{cv.plot}` #puts JSON.pretty_generate(cv.misclassifications)#.collect{|l| l.join ", "}.join "\n" #`inkview #{cv.plot}` @@ -37,12 +52,51 @@ class ValidationTest < MiniTest::Test dataset = Dataset.from_csv_file "#{DATA_DIR}/hamster_carcinogenicity.csv" model = Model::LazarClassification.create dataset repeated_cv = RepeatedCrossValidation.create model - p repeated_cv repeated_cv.crossvalidations.each do |cv| - p cv - p cv.accuracy assert cv.accuracy > 0.7 end end + def test_crossvalidation_parameters + dataset = Dataset.from_csv_file "#{DATA_DIR}/hamster_carcinogenicity.csv" + params = { + :neighbor_algorithm_parameters => { + :min_sim => 0.3, + :type => "FP3" + } + } + model = Model::LazarClassification.create dataset, params + model.save + cv = ClassificationCrossValidation.create model + params = model.neighbor_algorithm_parameters + params = Hash[params.map{ |k, v| [k.to_s, v] }] # convert symbols to string + cv.validations.each do |validation| + assert_equal params, validation.model.neighbor_algorithm_parameters + end + end + + def test_physchem_regression_crossvalidation + + @descriptors = OpenTox::Algorithm::Descriptor::OBDESCRIPTORS.keys + refute_empty @descriptors + + # UPLOAD DATA + training_dataset = OpenTox::Dataset.from_csv_file File.join(DATA_DIR,"EPAFHM.medi.csv") + feature_dataset = Algorithm::Descriptor.physchem training_dataset, @descriptors + feature_dataset.save + scaled_feature_dataset = feature_dataset.scale + scaled_feature_dataset.save + model = Model::LazarRegression.create training_dataset + model.neighbor_algorithm = "physchem_neighbors" + model.neighbor_algorithm_parameters = { + :feature_calculation_algorithm => "OpenTox::Algorithm::Descriptor.physchem", + :descriptors => @descriptors, + :feature_dataset_id => scaled_feature_dataset.id, + :min_sim => 0.3 + } + model.save + cv = RegressionCrossValidation.create model + p cv + end + end -- cgit v1.2.3