summaryrefslogtreecommitdiff
path: root/lib/crossvalidation.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2015-10-19 11:42:16 +0200
committerChristoph Helma <helma@in-silico.ch>2015-10-19 11:42:16 +0200
commit511b3033b7359a8bf23cac42852003e94044cd47 (patch)
tree8c463f4ad636302befcec255ff38a6d312efd1e8 /lib/crossvalidation.rb
parent596ef28dea32baa37b47fa5b82bdc4649ca69382 (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.rb36
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