From 624a0eaa13d0c9b14e61b7478cb7f139f08d5ecf Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Tue, 5 Jul 2011 09:01:13 +0200 Subject: Fixed log taking --- lazar.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lazar.rb b/lazar.rb index e81c1ba..708fa56 100644 --- a/lazar.rb +++ b/lazar.rb @@ -154,11 +154,7 @@ post '/lazar/?' do lazar.activities[compound] << lazar.value_map.invert[value] # insert mapped values, not originals elsif prediction_feature.feature_type == "regression" #never use halt in tasks, do not raise exception when, print warning instead - if value.to_f==0 - LOGGER.warn "0 values not allowed in training dataset. log10 is calculated internally. skipping compound" - else - lazar.activities[compound] << value.to_f - end + lazar.activities[compound] << value.to_f end end end -- cgit v1.2.3 From 469605e600f52eb409704a2e8195588a2f99591d Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Fri, 8 Jul 2011 14:55:16 +0200 Subject: Added transformation on model creation --- lazar.rb | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lazar.rb b/lazar.rb index 708fa56..832735b 100644 --- a/lazar.rb +++ b/lazar.rb @@ -146,6 +146,22 @@ post '/lazar/?' do lazar.prop_kernel = true if (params[:local_svm_kernel] == "propositionalized" || params[:prediction_algorithm] == "local_mlr_prop") lazar.balanced = true if params[:balanced] == "true" + # AM: Transformation of Data + transform_acts = [] + if prediction_feature.feature_type == "regression" + training_activities.data_entries.each do |compound,entry| + unless entry[prediction_feature.uri].empty? + entry[prediction_feature.uri].each do |value| + transform_acts << value.to_f + end + end + end + end + inverter = OpenTox::Algorithm::Transform::Inverter.new(transform_acts) + transform_acts = inverter.value + lazar.transform = inverter + + transform_counts=0 training_activities.data_entries.each do |compound,entry| lazar.activities[compound] = [] unless lazar.activities[compound] unless entry[prediction_feature.uri].empty? @@ -154,8 +170,9 @@ post '/lazar/?' do lazar.activities[compound] << lazar.value_map.invert[value] # insert mapped values, not originals elsif prediction_feature.feature_type == "regression" #never use halt in tasks, do not raise exception when, print warning instead - lazar.activities[compound] << value.to_f + lazar.activities[compound] << transform_acts[transform_counts].to_s end + transform_counts+=1 end end end -- cgit v1.2.3 From f90b0908922cf80e6ca0fb11c2bb0e4b1186d6cf Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Fri, 8 Jul 2011 15:51:08 +0200 Subject: Changed inverter to log10 --- lazar.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lazar.rb b/lazar.rb index 832735b..cea6bdc 100644 --- a/lazar.rb +++ b/lazar.rb @@ -157,8 +157,8 @@ post '/lazar/?' do end end end - inverter = OpenTox::Algorithm::Transform::Inverter.new(transform_acts) - transform_acts = inverter.value + inverter = OpenTox::Algorithm::Transform::Log10.new(transform_acts) + transform_acts = inverter.values lazar.transform = inverter transform_counts=0 -- cgit v1.2.3 From 2a4221980e1f19b3bee3b619bd7b8778212d488d Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Mon, 11 Jul 2011 08:48:40 +0200 Subject: Fixed representation of transform --- lazar.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lazar.rb b/lazar.rb index cea6bdc..8d87e24 100644 --- a/lazar.rb +++ b/lazar.rb @@ -157,9 +157,9 @@ post '/lazar/?' do end end end - inverter = OpenTox::Algorithm::Transform::Log10.new(transform_acts) - transform_acts = inverter.values - lazar.transform = inverter + transformer = OpenTox::Algorithm::Transform::Log10.new(transform_acts) + transform_acts = transformer.values + lazar.transform = { :class => transformer.class, :offset => transformer.offset } transform_counts=0 training_activities.data_entries.each do |compound,entry| -- cgit v1.2.3 From 632e4f7504dbcadc952432bab141ef873f2e1875 Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Mon, 11 Jul 2011 08:56:47 +0200 Subject: Fixed class.to_s --- lazar.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lazar.rb b/lazar.rb index 8d87e24..da243ea 100644 --- a/lazar.rb +++ b/lazar.rb @@ -159,7 +159,7 @@ post '/lazar/?' do end transformer = OpenTox::Algorithm::Transform::Log10.new(transform_acts) transform_acts = transformer.values - lazar.transform = { :class => transformer.class, :offset => transformer.offset } + lazar.transform = { :class => transformer.class.to_s, :offset => transformer.offset } transform_counts=0 training_activities.data_entries.each do |compound,entry| -- cgit v1.2.3 From e2137202d522e9a167b1418228dbe24dd0f181b7 Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Thu, 14 Jul 2011 10:42:40 +0200 Subject: Added switch for Transform --- lazar.rb | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/lazar.rb b/lazar.rb index da243ea..1f2fec8 100644 --- a/lazar.rb +++ b/lazar.rb @@ -141,38 +141,42 @@ post '/lazar/?' do end end - # AM: allow prediction_algorithm override by user for classification AND regression + # AM: allow settings override by user lazar.prediction_algorithm = "Neighbors.#{params[:prediction_algorithm]}" unless params[:prediction_algorithm].nil? + lazar.transform["class"] = params[:activity_transform] unless params[:activity_transform].nil? lazar.prop_kernel = true if (params[:local_svm_kernel] == "propositionalized" || params[:prediction_algorithm] == "local_mlr_prop") lazar.balanced = true if params[:balanced] == "true" - # AM: Transformation of Data - transform_acts = [] + # AM: Feed Data using Transformations if prediction_feature.feature_type == "regression" + transformed_acts = [] training_activities.data_entries.each do |compound,entry| unless entry[prediction_feature.uri].empty? entry[prediction_feature.uri].each do |value| - transform_acts << value.to_f + transformed_acts << value.to_f end end end - end - transformer = OpenTox::Algorithm::Transform::Log10.new(transform_acts) - transform_acts = transformer.values - lazar.transform = { :class => transformer.class.to_s, :offset => transformer.offset } - - transform_counts=0 - training_activities.data_entries.each do |compound,entry| - lazar.activities[compound] = [] unless lazar.activities[compound] - unless entry[prediction_feature.uri].empty? - entry[prediction_feature.uri].each do |value| - if prediction_feature.feature_type == "classification" + transfomer = eval "OpenTox::Algorithm::Transform::#{lazar.transform["class"]}.new(transform_acts)" + transformed_acts = transformer.values + lazar.transform["offset"] = transformer.offset + t_count=0 + training_activities.data_entries.each do |compound,entry| + lazar.activities[compound] = [] unless lazar.activities[compound] + unless entry[prediction_feature.uri].empty? + entry[prediction_feature.uri].each do |value| + lazar.activities[compound] << transformed_acts[t_count].to_s + t_count+=1 + end + end + end + elsif prediction_feature.feature_type == "classification" + training_activities.data_entries.each do |compound,entry| + lazar.activities[compound] = [] unless lazar.activities[compound] + unless entry[prediction_feature.uri].empty? + entry[prediction_feature.uri].each do |value| lazar.activities[compound] << lazar.value_map.invert[value] # insert mapped values, not originals - elsif prediction_feature.feature_type == "regression" - #never use halt in tasks, do not raise exception when, print warning instead - lazar.activities[compound] << transform_acts[transform_counts].to_s end - transform_counts+=1 end end end -- cgit v1.2.3