From 280f81dcffb3b8b929ff9cbe92ba17403f5a9dd3 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Fri, 28 Oct 2016 12:31:53 +0200 Subject: adjusted r^2 removed (does not apply well to local models) --- lib/crossvalidation.rb | 2 -- lib/validation-statistics.rb | 1 + test/validation-nanoparticle.rb | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/crossvalidation.rb b/lib/crossvalidation.rb index 4f779a2..be680ae 100644 --- a/lib/crossvalidation.rb +++ b/lib/crossvalidation.rb @@ -95,7 +95,6 @@ module OpenTox crossvalidation_ids.collect{|id| CrossValidation.find(id)} end -=begin def correlation_plot format: "png" #unless correlation_plot_id feature = Feature.find(crossvalidations.first.model.prediction_feature) @@ -129,7 +128,6 @@ module OpenTox #end $gridfs.find_one(_id: correlation_plot_id).data end -=end end end diff --git a/lib/validation-statistics.rb b/lib/validation-statistics.rb index b251bdb..799bb34 100644 --- a/lib/validation-statistics.rb +++ b/lib/validation-statistics.rb @@ -139,6 +139,7 @@ module OpenTox :mae => mae, :rmse => rmse, :r_squared => r_squared, + :r_squared_adjusted => r_squared_adjusted, :within_prediction_interval => within_prediction_interval, :out_of_prediction_interval => out_of_prediction_interval, } diff --git a/test/validation-nanoparticle.rb b/test/validation-nanoparticle.rb index c0f2f92..1742ef2 100644 --- a/test/validation-nanoparticle.rb +++ b/test/validation-nanoparticle.rb @@ -15,6 +15,7 @@ class NanoparticleValidationTest < MiniTest::Test def test_validate_default_nanoparticle_model model = Model::Lazar.create training_dataset: @training_dataset, prediction_feature: @prediction_feature cv = CrossValidation.create model + p cv p cv.rmse p cv.r_squared #File.open("tmp.pdf","w+"){|f| f.puts cv.correlation_plot} -- cgit v1.2.3 From c6e86fc1bfee7cb91782dd7067408d78a8e48ed9 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Tue, 8 Nov 2016 16:04:49 +0100 Subject: probability plot for classification --- lib/validation-statistics.rb | 12 ++++++++---- test/descriptor.rb | 4 +++- test/validation-classification.rb | 6 ++++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/validation-statistics.rb b/lib/validation-statistics.rb index 799bb34..b6f8a60 100644 --- a/lib/validation-statistics.rb +++ b/lib/validation-statistics.rb @@ -66,8 +66,13 @@ module OpenTox end def probability_plot format: "pdf" - unless probability_plot_id - tmpfile = "/tmp/#{id.to_s}_probability.#{format}" + #unless probability_plot_id + + #tmpdir = File.join(ENV["HOME"], "tmp") + tmpdir = "/tmp" + #p tmpdir + FileUtils.mkdir_p tmpdir + tmpfile = File.join(tmpdir,"#{id.to_s}_probability.#{format}") accuracies = [] probabilities = [] correct_predictions = 0 @@ -91,7 +96,7 @@ module OpenTox file = Mongo::Grid::File.new(File.read(tmpfile), :filename => "#{self.id.to_s}_probability_plot.svg") plot_id = $gridfs.insert_one(file) update(:probability_plot_id => plot_id) - end + #end $gridfs.find_one(_id: probability_plot_id).data end end @@ -139,7 +144,6 @@ module OpenTox :mae => mae, :rmse => rmse, :r_squared => r_squared, - :r_squared_adjusted => r_squared_adjusted, :within_prediction_interval => within_prediction_interval, :out_of_prediction_interval => out_of_prediction_interval, } diff --git a/test/descriptor.rb b/test/descriptor.rb index e5d8ff9..42d4661 100644 --- a/test/descriptor.rb +++ b/test/descriptor.rb @@ -12,7 +12,9 @@ class DescriptorTest < MiniTest::Test def test_smarts c = OpenTox::Compound.from_smiles "N=C=C1CCC(=F=FO)C1" - File.open("tmp.png","w+"){|f| f.puts c.png} + File.open("/tmp/tmp.png","w+"){|f| f.puts c.png} + assert_match /^PNG/,`file -b /tmp/tmp.png` + File.delete "/tmp/tmp.png" s = Smarts.find_or_create_by(:smarts => "F=F") result = c.smarts_match [s] assert_equal [1], result diff --git a/test/validation-classification.rb b/test/validation-classification.rb index c93e71f..fb4c3e7 100644 --- a/test/validation-classification.rb +++ b/test/validation-classification.rb @@ -11,8 +11,10 @@ class ValidationClassificationTest < MiniTest::Test cv = ClassificationCrossValidation.create model assert cv.accuracy > 0.7, "Accuracy (#{cv.accuracy}) should be larger than 0.7, this may occur due to an unfavorable training/test set split" assert cv.weighted_accuracy > cv.accuracy, "Weighted accuracy (#{cv.weighted_accuracy}) should be larger than accuracy (#{cv.accuracy})." - #p cv - #File.open("tmp.pdf","w+"){|f| f.puts cv.probability_plot} + File.open("/tmp/tmp.pdf","w+"){|f| f.puts cv.probability_plot(format:"pdf")} + p `file -b /tmp/tmp.pdf` + File.open("/tmp/tmp.png","w+"){|f| f.puts cv.probability_plot(format:"png")} + p `file -b /tmp/tmp.png` end # parameters -- cgit v1.2.3