From c2d9390594a2008b6fec2ce724462badd458ae74 Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Wed, 8 Feb 2012 14:15:30 +0100 Subject: Adjusted rfe --- feature_selection.rb | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/feature_selection.rb b/feature_selection.rb index c69a954..c5bc4fa 100644 --- a/feature_selection.rb +++ b/feature_selection.rb @@ -25,7 +25,9 @@ get "/feature_selection/rfe/?" do RDF.type => [OT.Algorithm,OTA.PatternMiningSupervised], OT.parameters => [ { DC.description => "Dataset URI", OT.paramScope => "mandatory", DC.title => "dataset_uri" }, - { DC.description => "Feature Dataset URI", OT.paramScope => "mandatory", DC.title => "feature_dataset_uri" } + { DC.description => "Prediction Feature URI", OT.paramScope => "mandatory", DC.title => "prediction_feature_uri" }, + { DC.description => "Feature Dataset URI", OT.paramScope => "mandatory", DC.title => "feature_dataset_uri" }, + { DC.description => "Delete Instances with missing values", OT.paramScope => "optional", DC.title => "del_missing" } ] } case request.env['HTTP_ACCEPT'] @@ -49,22 +51,31 @@ end post '/feature_selection/rfe/?' do raise OpenTox::NotFoundError.new "Please submit a dataset_uri." unless params[:dataset_uri] + raise OpenTox::NotFoundError.new "Please submit a prediction_feature_uri." unless params[:prediction_feature_uri] raise OpenTox::NotFoundError.new "Please submit a feature_dataset_uri." unless params[:feature_dataset_uri] ds_csv=OpenTox::RestClientWrapper.get( params[:dataset_uri], {:accept => "text/csv"} ) tf_ds=Tempfile.open(['rfe_', '.csv']) tf_ds.puts(ds_csv) + tf_ds.flush() + + prediction_feature = params[:prediction_feature_uri].split('/').last # get col name fds_csv=OpenTox::RestClientWrapper.get( params[:feature_dataset_uri], {:accept => "text/csv"}) tf_fds=Tempfile.open(['rfe_', '.csv']) tf_fds.puts(fds_csv) + tf_fds.flush() + + del_missing = params[:del_missing] == "true" ? true : false task = OpenTox::Task.create("Recursive Feature Elimination", url_for('/feature_selection',:full)) do |task| - rfe=OpenTox::Algorithm::FeatureSelection.rfe( { :ds_csv_file => tf_ds, :fds_csv_file => tf_fds } ) - r_result_uri=OpenTox::Dataset.create_from_csv(r_result_file).uri - File.unlink(r_result_file) + r_result_file = OpenTox::Algorithm::FeatureSelection.rfe( { :ds_csv_file => tf_ds.path, :prediction_feature => prediction_feature, :fds_csv_file => tf_fds.path, :del_missing => del_missing } ) + r_result_uri = OpenTox::Dataset.create_from_csv_file(r_result_file).uri tf_ds.close! tf_fds.close! + File.unlink(r_result_file) + File.unlink(tf_ds.path) + File.unlink(tf_fds.path) r_result_uri end response['Content-Type'] = 'text/uri-list' -- cgit v1.2.3