From a29eb3e38414cd252850c9c4fb356f8b2bef6fb4 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Fri, 12 Feb 2021 19:54:07 +0100 Subject: model.rb refactored, mp2d models updated --- lib/feature_selection.rb | 45 --------------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 lib/feature_selection.rb (limited to 'lib/feature_selection.rb') diff --git a/lib/feature_selection.rb b/lib/feature_selection.rb deleted file mode 100644 index c596b1f..0000000 --- a/lib/feature_selection.rb +++ /dev/null @@ -1,45 +0,0 @@ -module OpenTox - module Algorithm - - # Feature selection algorithms - class FeatureSelection - - # Select features correlated to the models prediction feature - # @param [OpenTox::Model::Lazar] - def self.correlation_filter model - relevant_features = {} - R.assign "dependent", model.dependent_variables.collect{|v| to_r(v)} - model.descriptor_weights = [] - selected_variables = [] - selected_descriptor_ids = [] - model.independent_variables.each_with_index do |v,i| - v.collect!{|n| to_r(n)} - R.assign "independent", v - begin - R.eval "cor <- cor.test(dependent,independent,method = 'pearson',use='pairwise')" - pvalue = R.eval("cor$p.value").to_ruby - if pvalue <= 0.05 - model.descriptor_weights << R.eval("cor$estimate").to_ruby**2 - selected_variables << v - selected_descriptor_ids << model.descriptor_ids[i] - end - rescue - warn "Correlation of '#{model.prediction_feature.name}' (#{model.dependent_variables}) with (#{v}) failed." - end - end - - model.independent_variables = selected_variables - model.descriptor_ids = selected_descriptor_ids - model - end - - def self.to_r v - return 0 if v == false - return 1 if v == true - v - end - - end - - end -end -- cgit v1.2.3