summaryrefslogtreecommitdiff
path: root/test/validation.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2015-09-23 14:51:41 +0200
committerChristoph Helma <helma@in-silico.ch>2015-09-23 14:51:41 +0200
commitd5bf97c2cb999539c56bf59aa1d7d3286745be84 (patch)
tree91d5ab3fd9641c7349d45356d43aef867e4bee92 /test/validation.rb
parent259cd085e053193b4c166495ae1af35cfa94bcf6 (diff)
validations fixed (all models were executed with default parameters)
Diffstat (limited to 'test/validation.rb')
-rw-r--r--test/validation.rb66
1 files changed, 60 insertions, 6 deletions
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