summaryrefslogtreecommitdiff
path: root/lib/regression.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2015-08-20 14:02:04 +0200
committerChristoph Helma <helma@in-silico.ch>2015-08-20 14:02:04 +0200
commit398d8ca681db3aa0a0552eee026705e60dd8449d (patch)
tree79809c5a8af87238eb86de98065a7afbacf21798 /lib/regression.rb
parentd48a31ad6773864eacc08a673edb45877c9b7972 (diff)
crossvalidation fixesv0.0.7
Diffstat (limited to 'lib/regression.rb')
-rw-r--r--lib/regression.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/regression.rb b/lib/regression.rb
index 8a52e7d..0bc6547 100644
--- a/lib/regression.rb
+++ b/lib/regression.rb
@@ -34,6 +34,30 @@ module OpenTox
{:value => prediction,:confidence => confidence}
end
+ def self.weighted_average_with_relevant_fingerprints neighbors
+ weighted_sum = 0.0
+ sim_sum = 0.0
+ fingerprint_features = []
+ neighbors.each do |row|
+ n,sim,acts = row
+ neighbor = Compound.find n
+ fingerprint_features += neighbor.fp4
+ end
+ fingerprint_features.uniq!
+ p fingerprint_features
+=begin
+ p n
+ acts.each do |act|
+ weighted_sum += sim*Math.log10(act)
+ sim_sum += sim
+ end
+ end
+=end
+ confidence = sim_sum/neighbors.size.to_f
+ sim_sum == 0 ? prediction = nil : prediction = 10**(weighted_sum/sim_sum)
+ {:value => prediction,:confidence => confidence}
+ end
+
# Local support vector regression from neighbors
# @param [Hash] params Keys `:props, :activities, :sims, :min_train_performance` are required
# @return [Numeric] A prediction value.