diff options
author | Christoph Helma <helma@in-silico.ch> | 2015-10-19 11:42:16 +0200 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2015-10-19 11:42:16 +0200 |
commit | 511b3033b7359a8bf23cac42852003e94044cd47 (patch) | |
tree | 8c463f4ad636302befcec255ff38a6d312efd1e8 /lib/crossvalidation.rb | |
parent | 596ef28dea32baa37b47fa5b82bdc4649ca69382 (diff) |
GridFS storage for data_entries removed (will break kazius/fminer models), lazy creation of classification confidence plots.
Diffstat (limited to 'lib/crossvalidation.rb')
-rw-r--r-- | lib/crossvalidation.rb | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/lib/crossvalidation.rb b/lib/crossvalidation.rb index cbffb7c..2e6dabb 100644 --- a/lib/crossvalidation.rb +++ b/lib/crossvalidation.rb @@ -128,26 +128,28 @@ module OpenTox end def confidence_plot - tmpfile = "/tmp/#{id.to_s}_confidence.svg" - accuracies = [] - confidences = [] - correct_predictions = 0 - incorrect_predictions = 0 - predictions.each do |p| - if p[1] and p[2] - p[1] == p [2] ? correct_predictions += 1 : incorrect_predictions += 1 - accuracies << correct_predictions/(correct_predictions+incorrect_predictions).to_f - confidences << p[3] + unless confidence_plot_id + tmpfile = "/tmp/#{id.to_s}_confidence.svg" + accuracies = [] + confidences = [] + correct_predictions = 0 + incorrect_predictions = 0 + predictions.each do |p| + if p[1] and p[2] + p[1] == p [2] ? correct_predictions += 1 : incorrect_predictions += 1 + accuracies << correct_predictions/(correct_predictions+incorrect_predictions).to_f + confidences << p[3] + end end + R.assign "accuracy", accuracies + R.assign "confidence", confidences + R.eval "image = qplot(confidence,accuracy)+ylab('accumulated accuracy')+scale_x_reverse()" + R.eval "ggsave(file='#{tmpfile}', plot=image)" + file = Mongo::Grid::File.new(File.read(tmpfile), :filename => "#{self.id.to_s}_confidence_plot.svg") + plot_id = $gridfs.insert_one(file) + update(:confidence_plot_id => plot_id) end - R.assign "accuracy", accuracies - R.assign "confidence", confidences - R.eval "image = qplot(confidence,accuracy)+ylab('accumulated accuracy')+scale_x_reverse()" - R.eval "ggsave(file='#{tmpfile}', plot=image)" - file = Mongo::Grid::File.new(File.read(tmpfile), :filename => "#{self.id.to_s}_confidence_plot.svg") - plot_id = $gridfs.insert_one(file) - update(:confidence_plot_id => plot_id) $gridfs.find_one(_id: confidence_plot_id).data end |