summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fminer.rb2
-rw-r--r--lazar.rb23
2 files changed, 14 insertions, 11 deletions
diff --git a/fminer.rb b/fminer.rb
index 8c6451c..2aee7bd 100644
--- a/fminer.rb
+++ b/fminer.rb
@@ -173,7 +173,7 @@ post '/fminer/bbrc/?' do
LOGGER.warn "No #{feature} activity for #{compound.to_s}."
else
if prediction_feature.feature_type == "classification"
- activity= value.to_f
+ activity= params[:value_map].invert[value].to_f
nr_classes[activity].nil? ? nr_classes[activity]=0 : nr_classes[activity]+=1
nr_total+=1
elsif prediction_feature.feature_type == "regression"
diff --git a/lazar.rb b/lazar.rb
index eb14075..6f8f439 100644
--- a/lazar.rb
+++ b/lazar.rb
@@ -53,7 +53,7 @@ post '/lazar/?' do
prediction_feature = OpenTox::Feature.find(training_activities.features.keys.first,@subjectid)
params[:prediction_feature] = prediction_feature.uri # pass to feature mining service
end
-
+
feature_generation_uri = @@feature_generation_default unless feature_generation_uri = params[:feature_generation_uri]
raise OpenTox::NotFoundError.new "No feature #{prediction_feature.uri} in dataset #{params[:dataset_uri]}. (features: "+
@@ -62,6 +62,18 @@ post '/lazar/?' do
lazar = OpenTox::Model::Lazar.new
lazar.min_sim = params[:min_sim] if params[:min_sim]
+
+ if prediction_feature.feature_type == "classification"
+ @training_classes = training_activities.accept_values(prediction_feature.uri).sort
+ @training_classes.each_with_index { |c,i|
+ lazar.value_map[i] = c
+ params[:value_map] = lazar.value_map
+ }
+ elsif prediction_feature.feature_type == "regression"
+ lazar.prediction_algorithm = "Neighbors.local_svm_regression"
+ end
+
+
if params[:feature_dataset_uri]
feature_dataset_uri = params[:feature_dataset_uri]
training_features = OpenTox::Dataset.new(feature_dataset_uri)
@@ -129,15 +141,6 @@ post '/lazar/?' do
end
end
- if prediction_feature.feature_type == "classification"
- @training_classes = training_activities.accept_values(prediction_feature.uri).sort
- @training_classes.each_with_index { |c,i|
- lazar.value_map[i] = c
- }
- elsif prediction_feature.feature_type == "regression"
- lazar.prediction_algorithm = "Neighbors.local_svm_regression"
- end
-
# AM: allow prediction_algorithm override by user for classification AND regression
lazar.prediction_algorithm = "Neighbors.#{params[:prediction_algorithm]}" unless params[:prediction_algorithm].nil?
lazar.prop_kernel = true if params[:local_svm_kernel] == "propositionalized"