diff options
author | Andreas Maunz <andreas@maunz.de> | 2011-11-29 13:11:53 +0100 |
---|---|---|
committer | Andreas Maunz <andreas@maunz.de> | 2011-11-29 13:11:53 +0100 |
commit | 9626000599a12c1d469896f2e9dc5369899672c6 (patch) | |
tree | 806e3ff50300ab15a1bc4a323d2af3cb4b1dd5ec | |
parent | 1faa365f9bccaed6c31751385a42c11631a860da (diff) |
PC tests (lazar.rb)
-rw-r--r-- | lazar.rb | 250 |
1 files changed, 155 insertions, 95 deletions
@@ -62,97 +62,157 @@ class LazarTest < Test::Unit::TestCase =begin =end -# def test_create_regression_model -# create_model :dataset_uri => @@regression_training_dataset.uri -# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") -# assert_in_delta @predictions.first.value(@compounds.first), 0.15, 0.2 -# assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3) -# assert_equal 253, @predictions.first.neighbors(@compounds.first).size -# cleanup -# end -# -# def test_create_regression_prop_model -# create_model :dataset_uri => @@regression_training_dataset.uri, :local_svm_kernel => "propositionalized" -# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") -# assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3) -# assert_equal 253, @predictions.first.neighbors(@compounds.first).size -# assert_equal 131, @model.features.size -# cleanup -# end -# -# def test_classification_model -# create_model :dataset_uri => @@classification_training_dataset.uri -# # single prediction -# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") -# # dataset activity -# predict_compound OpenTox::Compound.from_smiles("CNN") -# # dataset prediction -# predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid) -# # assertions -# # single prediction -# assert_equal "false", @predictions[0].value(@compounds[0]) -# assert_equal 0.2938.round_to(4), @predictions[0].confidence(@compounds[0]).round_to(4) -# assert_equal 16, @predictions[0].neighbors(@compounds[0]).size -# # dataset activity -# assert !@predictions[1].measured_activities(@compounds[1]).empty? -# assert_equal "true", @predictions[1].measured_activities(@compounds[1]).first.to_s -# assert @predictions[1].value(@compounds[1]).nil? -# # dataset prediction -# c = OpenTox::Compound.from_smiles("CC(=Nc1ccc2c(c1)Cc1ccccc21)O") -# assert_equal nil, @predictions[2].value(c) -# assert_equal "true", @predictions[2].measured_activities(c).first.to_s -# c = OpenTox::Compound.from_smiles("c1ccccc1NN") -# assert_equal "false", @predictions[2].value(c) -# assert_equal 0.2938.round_to(4) , @predictions[2].confidence(c).round_to(4) -# # model -# assert_equal 41, @model.features.size -# cleanup -# end -# -# -# def test_classification_svm_model -# create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification" -# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") -# predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid) -# -# assert_equal "false", @predictions[0].value(@compounds[0]) -# assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4) -# assert_equal 16, @predictions[0].neighbors(@compounds[0]).size -# -# c = OpenTox::Compound.from_smiles("c1ccccc1NN") -# assert_equal 4, @predictions[1].compounds.size -# assert_equal "false", @predictions[1].value(c) -# -# assert_equal 41, @model.features.size -# cleanup -# end -# -# def test_classification_svm_prop_model -# create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification", :local_svm_kernel => "propositionalized" -# predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") -# predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid) -# -# assert_equal "false", @predictions[0].value(@compounds[0]) -# assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4) -# assert_equal 16, @predictions[0].neighbors(@compounds[0]).size -# -# c = OpenTox::Compound.from_smiles("c1ccccc1NN") -# assert_equal 4, @predictions[1].compounds.size -# assert_equal "false", @predictions[1].value(c) -# -# assert_equal 41, @model.features.size -# cleanup -# end + ### Regression + # + # Nominal / Ordinal Features def test_regression_mlr_prop_model create_model :dataset_uri => @@regression_training_dataset.uri, :prediction_algorithm => "local_mlr_prop" predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") - assert_equal 0.453, @predictions.first.confidence(@compounds.first).round_to(3) - assert_equal 0.765, @predictions.first.value(@compounds.first).round_to(3) + assert_equal 0.45, @predictions.first.confidence(@compounds.first).round_to(2) + assert_equal 0.62, @predictions.first.value(@compounds.first).round_to(2) assert_equal 253, @predictions.first.neighbors(@compounds.first).size assert_equal 131, @model.features.size end + def test_create_regression_model + create_model :dataset_uri => @@regression_training_dataset.uri + predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") + assert_in_delta @predictions.first.value(@compounds.first), 0.15, 0.2 + assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3) + assert_equal 253, @predictions.first.neighbors(@compounds.first).size + cleanup + end + + def test_create_regression_prop_model + create_model :dataset_uri => @@regression_training_dataset.uri, :local_svm_kernel => "propositionalized" + predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") + assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3) + assert_equal 253, @predictions.first.neighbors(@compounds.first).size + assert_equal 131, @model.features.size + cleanup + end + + # Numeric Features + def test_create_regression_prop_pc_model + create_model :dataset_uri => @@regression_training_dataset.uri, :local_svm_kernel => "propositionalized", :pc_type => "electronic" + predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") + assert_in_delta @predictions.first.value(@compounds.first), 0.53, 0.1 + assert_equal 0.453.round_to(3), @predictions.first.confidence(@compounds.first).round_to(3) + assert_equal 253, @predictions.first.neighbors(@compounds.first).size + assert_equal 131, @model.features.size + cleanup + end + + def test_regression_mlr_prop_pc_model + create_model :dataset_uri => @@regression_training_dataset.uri, :prediction_algorithm => "local_mlr_prop", :pc_type => "electronic" + predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") + assert_equal 0.45, @predictions.first.confidence(@compounds.first).round_to(2) + assert_equal 0.76, @predictions.first.value(@compounds.first).round_to(2) + assert_equal 253, @predictions.first.neighbors(@compounds.first).size + assert_equal 131, @model.features.size + end + + + + + ### Classification + + ## Nominal / Ordinal Features + + def test_classification_model + create_model :dataset_uri => @@classification_training_dataset.uri + # single prediction + predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") + # dataset activity + predict_compound OpenTox::Compound.from_smiles("CNN") + # dataset prediction + predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid) + # assertions + # single prediction + assert_equal "false", @predictions[0].value(@compounds[0]) + assert_equal 0.2938.round_to(4), @predictions[0].confidence(@compounds[0]).round_to(4) + assert_equal 16, @predictions[0].neighbors(@compounds[0]).size + # dataset activity + assert !@predictions[1].measured_activities(@compounds[1]).empty? + assert_equal "true", @predictions[1].measured_activities(@compounds[1]).first.to_s + assert @predictions[1].value(@compounds[1]).nil? + # dataset prediction + c = OpenTox::Compound.from_smiles("CC(=Nc1ccc2c(c1)Cc1ccccc21)O") + assert_equal nil, @predictions[2].value(c) + assert_equal "true", @predictions[2].measured_activities(c).first.to_s + c = OpenTox::Compound.from_smiles("c1ccccc1NN") + assert_equal "false", @predictions[2].value(c) + assert_equal 0.2938.round_to(4) , @predictions[2].confidence(c).round_to(4) + # model + assert_equal 41, @model.features.size + cleanup + end + + + def test_classification_svm_model + create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification" + predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") + predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid) + + assert_equal "false", @predictions[0].value(@compounds[0]) + assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4) + assert_equal 16, @predictions[0].neighbors(@compounds[0]).size + + c = OpenTox::Compound.from_smiles("c1ccccc1NN") + assert_equal 4, @predictions[1].compounds.size + assert_equal "false", @predictions[1].value(c) + + assert_equal 41, @model.features.size + cleanup + end + + def test_classification_svm_prop_model + create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification", :local_svm_kernel => "propositionalized" + predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") + predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid) + + assert_equal "false", @predictions[0].value(@compounds[0]) + assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4) + assert_equal 16, @predictions[0].neighbors(@compounds[0]).size + + c = OpenTox::Compound.from_smiles("c1ccccc1NN") + assert_equal 4, @predictions[1].compounds.size + assert_equal "false", @predictions[1].value(c) + + assert_equal 41, @model.features.size + cleanup + end + + + ## Numeric Features + + def test_classification_svm_prop_pc_model + create_model :dataset_uri => @@classification_training_dataset.uri, :prediction_algorithm => "local_svm_classification", :local_svm_kernel => "propositionalized", :pc_type => "electronic" + predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") + predict_dataset OpenTox::Dataset.create_from_csv_file("data/multicolumn.csv", @@subjectid) + + assert_equal "false", @predictions[0].value(@compounds[0]) + assert_equal 0.3952, @predictions[0].confidence(@compounds[0]).round_to(4) + assert_equal 16, @predictions[0].neighbors(@compounds[0]).size + + c = OpenTox::Compound.from_smiles("c1ccccc1NN") + assert_equal 4, @predictions[1].compounds.size + assert_equal "false", @predictions[1].value(c) + + assert_equal 41, @model.features.size + cleanup + end + + + + + + + + + + ## def test_regression_mlr_prop_conf_stdev ## create_model :dataset_uri => @@regression_training_dataset.uri, :prediction_algorithm => "local_mlr_prop", :conf_stdev => "true" ## predict_compound OpenTox::Compound.from_smiles("c1ccccc1NN") @@ -162,18 +222,18 @@ class LazarTest < Test::Unit::TestCase ## assert_equal 131, @model.features.size ## end -# def test_conf_stdev -# params = {:sims => [0.6,0.72,0.8], :acts => [1,1,1], :neighbors => [1,1,1], :conf_stdev => true} -# params2 = {:sims => [0.6,0.7,0.8], :acts => [3.4,2,0.6], :neighbors => [1,1,1,1], :conf_stdev => true } # stev ~ 1.4 -# params3 = {:sims => [0.6,0.7,0.8], :acts => [1,1,1], :neighbors => [1,1,1], } -# params4 = {:sims => [0.6,0.7,0.8], :acts => [3.4,2,0.6], :neighbors => [1,1,1] } -# 2.times { -# assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params), 0.72, 0.0001 -# assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params2), 0.172617874759125, 0.0001 -# assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params3), 0.7, 0.0001 -# assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params4), 0.7, 0.0001 -# } -# end + def test_conf_stdev + params = {:sims => [0.6,0.72,0.8], :acts => [1,1,1], :neighbors => [1,1,1], :conf_stdev => true} + params2 = {:sims => [0.6,0.7,0.8], :acts => [3.4,2,0.6], :neighbors => [1,1,1,1], :conf_stdev => true } # stev ~ 1.4 + params3 = {:sims => [0.6,0.7,0.8], :acts => [1,1,1], :neighbors => [1,1,1], } + params4 = {:sims => [0.6,0.7,0.8], :acts => [3.4,2,0.6], :neighbors => [1,1,1] } + 2.times { + assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params), 0.72, 0.0001 + assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params2), 0.172617874759125, 0.0001 + assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params3), 0.7, 0.0001 + assert_in_delta OpenTox::Algorithm::Neighbors::get_confidence(params4), 0.7, 0.0001 + } + end =begin def test_ambit_classification_model |