summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Maunz <andreas@maunz.de>2011-05-26 14:28:19 +0200
committerAndreas Maunz <andreas@maunz.de>2011-05-26 14:28:19 +0200
commit3922c8e5fcb9fbe6ddedab9f70e114717ff33a60 (patch)
tree0f151c6f6e9d61e2f9b532fdc34efc471878ddd6
parent852eef754518633f4a918aa1876ec3c4ac12ac57 (diff)
8th v
-rw-r--r--lib/algorithm.rb2
-rw-r--r--lib/model.rb17
2 files changed, 14 insertions, 5 deletions
diff --git a/lib/algorithm.rb b/lib/algorithm.rb
index 91e075a..2652695 100644
--- a/lib/algorithm.rb
+++ b/lib/algorithm.rb
@@ -164,7 +164,7 @@ module OpenTox
# @param [Array] neighbors, each neighbor is a hash with keys `:similarity, :activity, :features`
# @param [Hash] params Keys `:similarity_algorithm,:p_values` are required
# @return [Hash] Hash with keys `:prediction, :confidence`
- def self.local_svm_regression(neighbors, params)
+ def self.local_svm_regression(neighbors, params, props=nil)
take_logs=true
neighbors.each do |n|
if (! n[:activity].nil?) && (n[:activity].to_f < 0.0)
diff --git a/lib/model.rb b/lib/model.rb
index 7c2ef58..28c05a9 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -69,7 +69,7 @@ module OpenTox
include Model
include Algorithm
- attr_accessor :compound, :prediction_dataset, :features, :effects, :activities, :p_values, :fingerprints, :feature_calculation_algorithm, :similarity_algorithm, :prediction_algorithm, :min_sim, :subjectid
+ attr_accessor :compound, :prediction_dataset, :features, :effects, :activities, :p_values, :fingerprints, :feature_calculation_algorithm, :similarity_algorithm, :prediction_algorithm, :min_sim, :subjectid, :prop_kernel
def initialize(uri=nil)
@@ -92,6 +92,7 @@ module OpenTox
@prediction_algorithm = "Neighbors.weighted_majority_vote"
@min_sim = 0.3
+ @prop_kernel = false
end
@@ -219,7 +220,11 @@ module OpenTox
(i == modulo[0]) && (slack>0) ? lr_size = s.size + slack : lr_size = s.size + addon # determine fraction
LOGGER.info "BLAZAR: Neighbors round #{i}: #{position} + #{lr_size}."
neighbors_balanced(s, l, position, lr_size) # get ratio fraction of larger part
- (@prediction_algorithm.include? "svm" and params[:prop_kernel] == "true") ? props = get_props : props = nil
+ if @prop_kernel && @prediction_algorithm.include?("svm")
+ props = get_props
+ else
+ props = nil
+ end
prediction = eval("#{@prediction_algorithm}(@neighbors,{:similarity_algorithm => @similarity_algorithm, :p_values => @p_values}, props)")
if prediction_best.nil? || prediction[:confidence].abs > prediction_best[:confidence].abs
prediction_best=prediction
@@ -235,10 +240,14 @@ module OpenTox
@neighbors=neighbors_best
### END AM balanced predictions
- else # regression case: no balancing
+ else # AM: no balancing
LOGGER.info "LAZAR: Unbalanced."
neighbors
- (@prediction_algorithm.include? "svm" and params[:prop_kernel] == "true") ? props = get_props : props = nil
+ if @prop_kernel && @prediction_algorithm.include?("svm")
+ props = get_props
+ else
+ props = nil
+ end
prediction = eval("#{@prediction_algorithm}(@neighbors,{:similarity_algorithm => @similarity_algorithm, :p_values => @p_values}, props)")
end