changeset 9:c6b3efcba7bd draft

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/sklearn commit 76583c1fcd9d06a4679cc46ffaee44117b9e22cd
author bgruening
date Sat, 04 Aug 2018 12:35:35 -0400
parents fd7a054ffdbd
children 38df89cbed19
files main_macros.xml model_validation.xml test-data/feature_selection_result01 test-data/feature_selection_result08 test-data/feature_selection_result09 test-data/feature_selection_result12 test-data/pipeline01 test-data/pipeline02 test-data/pipeline03 test-data/pipeline04 test-data/pipeline05 test-data/pipeline06 test-data/pipeline07 test-data/pipeline08 test-data/searchCV01
diffstat 15 files changed, 521 insertions(+), 1006 deletions(-) [+]
line wrap: on
line diff
--- a/main_macros.xml	Fri Jul 13 03:56:45 2018 -0400
+++ b/main_macros.xml	Sat Aug 04 12:35:35 2018 -0400
@@ -34,24 +34,20 @@
   if inputs['selected_algorithm'] == 'SelectFromModel':
     if not options['threshold'] or options['threshold'] == 'None':
       options['threshold'] = None
-      if 'extra_estimator' in inputs and inputs['extra_estimator']['has_estimator'] == 'no_load':
-        with open("inputs['extra_estimator']['fitted_estimator']", 'rb') as model_handler:
-          fitted_estimator = pickle.load(model_handler)
-        new_selector = selector(fitted_estimator, prefit=True, **options)
-      else:
-        estimator=inputs["estimator"]
-        if inputs["extra_estimator"]["has_estimator"]=='no':
-          estimator=inputs["extra_estimator"]["new_estimator"]
-        estimator=eval(estimator.replace('__dq__', '"').replace("__sq__","'"))
-        new_selector = selector(estimator, **options)
+    if inputs['model_inputter']['input_mode'] == 'prefitted':
+      model_file = inputs['model_inputter']['fitted_estimator']
+      with open(model_file, 'rb') as model_handler:
+        fitted_estimator = pickle.load(model_handler)
+      new_selector = selector(fitted_estimator, prefit=True, **options)
+    else:
+      estimator_json = inputs['model_inputter']["estimator_selector"]
+      estimator = get_estimator(estimator_json)
+      new_selector = selector(estimator, **options)
 
   elif inputs['selected_algorithm'] in ['RFE', 'RFECV']:
     if 'scoring' in options and (not options['scoring'] or options['scoring'] == 'None'):
       options['scoring'] = None
-    estimator=inputs["estimator"]
-    if inputs["extra_estimator"]["has_estimator"]=='no':
-      estimator=inputs["extra_estimator"]["new_estimator"]
-    estimator=eval(estimator.replace('__dq__', '"').replace("__sq__","'"))
+    estimator=get_estimator(inputs["estimator_selector"])
     new_selector = selector(estimator, **options)
 
   elif inputs['selected_algorithm'] == "VarianceThreshold":
@@ -104,11 +100,101 @@
   return X, y
   </token>
 
+  <token name="@GET_SEARCH_PARAMS_FUNCTION@">
+def get_search_params(params_builder):
+  search_params = {}
+
+  def safe_eval(literal):
+
+    FROM_SCIPY_STATS = [  'bernoulli', 'binom', 'boltzmann', 'dlaplace', 'geom', 'hypergeom',
+                          'logser', 'nbinom', 'planck', 'poisson', 'randint', 'skellam', 'zipf' ]
+
+    FROM_NUMPY_RANDOM = [ 'beta', 'binomial', 'bytes', 'chisquare', 'choice', 'dirichlet', 'division',
+                          'exponential', 'f', 'gamma', 'geometric', 'gumbel', 'hypergeometric',
+                          'laplace', 'logistic', 'lognormal', 'logseries', 'mtrand', 'multinomial',
+                          'multivariate_normal', 'negative_binomial', 'noncentral_chisquare', 'noncentral_f',
+                          'normal', 'pareto', 'permutation', 'poisson', 'power', 'rand', 'randint',
+                          'randn', 'random', 'random_integers', 'random_sample', 'ranf', 'rayleigh',
+                          'sample', 'seed', 'set_state', 'shuffle', 'standard_cauchy', 'standard_exponential',
+                          'standard_gamma', 'standard_normal', 'standard_t', 'triangular', 'uniform',
+                          'vonmises', 'wald', 'weibull', 'zipf' ]
+
+    # File opening and other unneeded functions could be dropped
+    UNWANTED = ['open', 'type', 'dir', 'id', 'str', 'repr']
+
+    # Allowed symbol table. Add more if needed.
+    new_syms = {
+      'np_arange': getattr(np, 'arange'),
+      'ensemble_ExtraTreesClassifier': getattr(ensemble, 'ExtraTreesClassifier')
+    }
+
+    syms = make_symbol_table(use_numpy=False, **new_syms)
+
+    for method in FROM_SCIPY_STATS:
+      syms['scipy_stats_' + method] = getattr(scipy.stats, method)
+
+    for func in FROM_NUMPY_RANDOM:
+      syms['np_random_' + func] = getattr(np.random, func)
+
+    for key in UNWANTED:
+      syms.pop(key, None)
+
+    aeval = Interpreter(symtable=syms, use_numpy=False, minimal=False,
+                      no_if=True, no_for=True, no_while=True, no_try=True,
+                      no_functiondef=True, no_ifexp=True, no_listcomp=False,
+                      no_augassign=False, no_assert=True, no_delete=True,
+                      no_raise=True, no_print=True)
+
+    return aeval(literal)
+
+  for p in params_builder['param_set']:
+    search_p = p['search_param_selector']['search_p']
+    if search_p.strip() == '':
+      continue
+    param_type = p['search_param_selector']['selected_param_type']
+
+    lst = search_p.split(":")
+    assert (len(lst) == 2), "Error, make sure there is one and only one colon in search parameter input."
+    literal = lst[1].strip()
+    ev = safe_eval(literal)
+    if param_type == "final_estimator_p":
+      search_params["estimator__" + lst[0].strip()] = ev
+    else:
+      search_params["preprocessing_" + param_type[5:6] + "__" + lst[0].strip()] = ev
+
+  return search_params
+  </token>
+
+  <token name="@GET_ESTIMATOR_FUNCTION@">
+def get_estimator(estimator_json):
+  estimator_module = estimator_json['selected_module']
+  estimator_cls = estimator_json['selected_estimator']
+
+  if estimator_module == "xgboost":
+    cls = getattr(xgboost, estimator_cls)
+  else:
+    module = getattr(sklearn, estimator_module)
+    cls = getattr(module, estimator_cls)
+
+  estimator = cls()
+
+  estimator_params = estimator_json['text_params'].strip()
+  if estimator_params != "":
+    try:
+      params = ast.literal_eval('{' + estimator_params + '}')
+    except ValueError:
+      sys.exit("Unsupported parameter input: `%s`" %estimator_params)
+    estimator.set_params(**params)
+
+  return estimator
+  </token>
+
   <xml name="python_requirements">
       <requirements>
           <requirement type="package" version="2.7">python</requirement>
           <requirement type="package" version="0.19.1">scikit-learn</requirement>
           <requirement type="package" version="0.22.0">pandas</requirement>
+          <requirement type="package" version="0.72.1">xgboost</requirement>
           <yield />
       </requirements>
   </xml>
@@ -907,53 +993,54 @@
     </expand>
   </xml>
 
-  <xml name="estimator_input_no_fit">
-    <expand macro="feature_selection_estimator" />
-    <conditional name="extra_estimator">
-      <expand macro="feature_selection_extra_estimator" />
-      <expand macro="feature_selection_estimator_choices" />
-    </conditional>
+  <xml name="fs_selectfrommodel_prefitted">
+    <param name="input_mode" type="select" label="Construct a new estimator from a selection list?" >
+      <option value="new" selected="true">Yes</option>
+      <option value="prefitted">No. Load a prefitted estimator</option>
+    </param>
+    <when value="new">
+      <expand macro="estimator_selector_all"/>
+    </when>
+    <when value="prefitted">
+      <param name="fitted_estimator" type="data" format='zip' label="Load a prefitted estimator" />
+    </when>
+  </xml>
+
+  <xml name="fs_selectfrommodel_no_prefitted">
+    <param name="input_mode" type="select" label="Construct a new estimator from a selection list?" >
+      <option value="new" selected="true">Yes</option>
+    </param>
+    <when value="new">
+      <expand macro="estimator_selector_all"/>
+    </when>
   </xml>
 
   <xml name="feature_selection_all">
-    <conditional name="feature_selection_algorithms">
+    <conditional name="fs_algorithm_selector">
       <param name="selected_algorithm" type="select" label="Select a feature selection algorithm">
-        <option value="SelectFromModel" selected="true">SelectFromModel - Meta-transformer for selecting features based on importance weights</option>
-        <option value="GenericUnivariateSelect" selected="true">GenericUnivariateSelect - Univariate feature selector with configurable strategy</option>
+        <option value="SelectKBest" selected="true">SelectKBest - Select features according to the k highest scores</option>
+        <option value="SelectFromModel">SelectFromModel - Meta-transformer for selecting features based on importance weights</option>
+        <option value="GenericUnivariateSelect">GenericUnivariateSelect - Univariate feature selector with configurable strategy</option>
         <option value="SelectPercentile">SelectPercentile - Select features according to a percentile of the highest scores</option>
-        <option value="SelectKBest">SelectKBest - Select features according to the k highest scores</option>
         <option value="SelectFpr">SelectFpr - Filter: Select the p-values below alpha based on a FPR test</option>
         <option value="SelectFdr">SelectFdr - Filter: Select the p-values for an estimated false discovery rate</option>
         <option value="SelectFwe">SelectFwe - Filter: Select the p-values corresponding to Family-wise error rate</option>
         <option value="RFE">RFE - Feature ranking with recursive feature elimination</option>
         <option value="RFECV">RFECV - Feature ranking with recursive feature elimination and cross-validated selection of the best number of features</option>
         <option value="VarianceThreshold">VarianceThreshold - Feature selector that removes all low-variance features</option>
-        <!--option value="chi2">Compute chi-squared stats between each non-negative feature and class</option-->
-        <!--option value="f_classif">Compute the ANOVA F-value for the provided sample</option-->
-        <!--option value="f_regression">Univariate linear regression tests</option-->
-        <!--option value="mutual_info_classif">Estimate mutual information for a discrete target variable</option-->
-        <!--option value="mutual_info_regression">Estimate mutual information for a continuous target variable</option-->
       </param>
       <when value="SelectFromModel">
-        <expand macro="feature_selection_estimator" />
-        <conditional name="extra_estimator">
-          <expand macro="feature_selection_extra_estimator" >
-            <option value="no_load">No, I will load a prefitted estimator</option>
-          </expand>
-          <expand macro="feature_selection_estimator_choices" >
-            <when value="no_load">
-              <param name="fitted_estimator" type="data" format='zip' label="Load a prefitted estimator" />
-            </when>
-          </expand>
+        <conditional name="model_inputter">
+          <yield/>
         </conditional>
-        <section name="options" title="Other Options" expanded="True">
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="threshold" type="text" value="" optional="true" label="threshold" help="The threshold value to use for feature selection. e.g. 'mean', 'median', '1.25*mean'." />
           <param argument="norm_order" type="integer" value="1" label="norm_order" help="Order of the norm used to filter the vectors of coefficients below threshold in the case where the coef_ attribute of the estimator is of dimension 2. " />
         </section>
       </when>
       <when value="GenericUnivariateSelect">
         <expand macro="feature_selection_score_function" />
-        <section name="options" title="Other Options" expanded="True">
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="mode" type="select" label="Feature selection mode">
             <option value="percentile">percentile</option>
             <option value="k_best">k_best</option>
@@ -966,53 +1053,45 @@
       </when>
       <when value="SelectPercentile">
         <expand macro="feature_selection_score_function" />
-        <section name="options" title="Other Options" expanded="True">
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="percentile" type="integer" value="10" optional="True" label="Percent of features to keep" />
         </section>
       </when>
       <when value="SelectKBest">
         <expand macro="feature_selection_score_function" />
-        <section name="options" title="Other Options" expanded="True">
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="k" type="integer" value="10" optional="True" label="Number of top features to select" help="No 'all' option is supported." />
         </section>
       </when>
       <when value="SelectFpr">
         <expand macro="feature_selection_score_function" />
-        <section name="options" title="Other Options" expanded="True">
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="alpha" type="float" value="" optional="True" label="Alpha" help="The highest p-value for features to be kept."/>
         </section>
       </when>
       <when value="SelectFdr">
         <expand macro="feature_selection_score_function" />
-        <section name="options" title="Other Options" expanded="True">
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="alpha" type="float" value="" optional="True" label="Alpha" help="The highest uncorrected p-value for features to keep."/>
         </section>
       </when>
       <when value="SelectFwe">
         <expand macro="feature_selection_score_function" />
-        <section name="options" title="Other Options" expanded="True">
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="alpha" type="float" value="" optional="True" label="Alpha" help="The highest uncorrected p-value for features to keep."/>
         </section>
       </when>
       <when value="RFE">
-        <expand macro="feature_selection_estimator" />
-        <conditional name="extra_estimator">
-          <expand macro="feature_selection_extra_estimator" />
-          <expand macro="feature_selection_estimator_choices" />
-        </conditional>
-        <section name="options" title="Other Options" expanded="True">
+        <expand macro="estimator_selector_all"/>
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="n_features_to_select" type="integer" value="" optional="true" label="n_features_to_select" help="The number of features to select. If None, half of the features are selected." />
           <param argument="step" type="float" value="1" label="step" optional="true" help="Default = 1. " />
           <param argument="verbose" type="integer" value="0" label="verbose" help="Controls verbosity of output." />
         </section>
       </when>
       <when value="RFECV">
-        <expand macro="feature_selection_estimator" />
-        <conditional name="extra_estimator">
-          <expand macro="feature_selection_extra_estimator" />
-          <expand macro="feature_selection_estimator_choices" />
-        </conditional>
-        <section name="options" title="Other Options" expanded="True">
+        <expand macro="estimator_selector_all"/>
+        <section name="options" title="Advanced Options" expanded="False">
           <param argument="step" type="float" value="1" label="step" optional="true" help="Default = 1. " />
           <param argument="cv" type="integer" value="" optional="true" label="cv" help="Determines the cross-validation splitting strategy" />
           <param argument="scoring" type="text" value="" optional="true" label="scoring" help="A string (see model evaluation documentation) or a scorer callable object / function with signature scorer(estimator, X, y)."/>
@@ -1021,7 +1100,7 @@
         </section>
       </when>
       <when value="VarianceThreshold">
-        <section name="options" title="Options" expanded="True">
+        <section name="options" title="Options" expanded="False">
           <param argument="threshold" type="float" value="" optional="True" label="Threshold" help="Features with a training-set variance lower than this threshold will be removed."/>
         </section>
       </when>
@@ -1048,36 +1127,9 @@
     </param>
   </xml>
 
-  <xml name="feature_selection_estimator">
-    <param argument="estimator" type="select" label="Select an estimator" help="The base estimator from which the transformer is built.">
-      <option value="svm.SVR(kernel=&quot;linear&quot;)">svm.SVR(kernel=&quot;linear&quot;)</option>
-      <option value="svm.SVC(kernel=&quot;linear&quot;)">svm.SVC(kernel=&quot;linear&quot;)</option>
-      <option value="svm.LinearSVC(penalty=&quot;l1&quot;, dual=False, tol=1e-3)">svm.LinearSVC(penalty=&quot;l1&quot;, dual=False, tol=1e-3)</option>
-      <option value="linear_model.LassoCV()">linear_model.LassoCV()</option>
-      <option value="ensemble.RandomForestRegressor(n_estimators = 1000, random_state = 42)">ensemble.RandomForestRegressor(n_estimators = 1000, random_state = 42)</option>
-    </param>
-  </xml>
-
-  <xml name="feature_selection_extra_estimator">   
-      <param name="has_estimator" type="select" label="Does your estimator on the list above?">
-        <option value="yes">Yes, my estimator is on the list</option>
-        <option value="no">No, I need make a new estimator</option>
-        <yield/>
-      </param>
-  </xml>
-
-  <xml name="feature_selection_estimator_choices">
-    <when value="yes">
-    </when>
-    <when value="no">
-      <param name="new_estimator" type="text" value="" label="Make a new estimator" />
-    </when>
-    <yield/>
-  </xml>
-
-  <xml name="feature_selection_methods">
-    <conditional name="select_methods">
-      <param name="selected_method" type="select" label="Select an operation">
+  <xml name="feature_selection_output_mothods">
+    <conditional name="output_method_selector">
+      <param name="selected_method" type="select" label="Select an output method:">
           <option value="fit_transform">fit_transform - Fit to data, then transform it</option>
           <option value="get_support">get_support - Get a mask, or integer index, of the features selected</option>
       </param>
@@ -1101,10 +1153,312 @@
     <param argument="scoring" type="text" value="" optional="true" label="scoring" help="A metric used to evaluate the estimator"/>
   </xml>
 
-  <xml name="pre_dispatch" token_type="text" token_default_value="all" token_help="Number of predispatched jobs for parallel execution">
+  <xml name="pre_dispatch" token_type="hidden" token_default_value="all" token_help="Number of predispatched jobs for parallel execution">
     <param argument="pre_dispatch" type="@TYPE@" value="@DEFAULT_VALUE@" optional="true" label="pre_dispatch" help="@HELP@"/>
   </xml>
 
+  <xml name="search_cv_estimator">
+    <param name="infile_pipeline" type="data" format="zip" label="Choose the dataset containing pipeline object:"/>
+    <section name="search_params_builder" title="Search parameters Builder" expanded="true">
+      <repeat name="param_set" min="1" max="20" title="Parameter setting for search:">
+        <conditional name="search_param_selector">
+          <param name="selected_param_type" type="select" label="Choose the transformation the parameter belongs to">
+            <option value="final_estimator_p" selected="true">Final estimator</option>
+            <option value="prep_1_p">Pre-processing step #1</option>
+            <option value="prep_2_p">Pre-processing step #2</option>
+            <option value="prep_3_p">Pre-processing step #3</option>
+            <option value="prep_4_p">Pre-processing step #4</option>
+            <option value="prep_5_p">Pre-processing step #5</option>
+          </param>
+          <when value="final_estimator_p">
+            <expand macro="search_param_input" />
+          </when>
+          <when value="prep_1_p">
+            <expand macro="search_param_input" label="Pre_processing component #1  parameter:" help="One parameter per box. For example: with_centering: [True, False]."/>
+          </when>
+          <when value="prep_2_p">
+            <expand macro="search_param_input" label="Pre_processing component #2 parameter:" help="One parameter per box. For example: k: [3, 5, 7, 9]. See bottom for more examples"/>
+          </when>
+          <when value="prep_3_p">
+            <expand macro="search_param_input" label="Pre_processing component #3 parameter:" help="One parameter per box. For example: n_components: [1, 10, 100, 1000]. See bottom for more examples"/>
+          </when>
+          <when value="prep_4_p">
+            <expand macro="search_param_input" label="Pre_processing component #4 parameter:" help="One parameter per box. For example: n_components: [1, 10, 100, 1000]. See bottom for more examples"/>
+          </when>
+          <when value="prep_5_p">
+            <expand macro="search_param_input" label="Pre_processing component #5 parameter:" help="One parameter per box. For example: affinity: ['euclidean', 'l1', 'l2', 'manhattan']. See bottom for more examples"/>
+          </when>
+        </conditional>
+      </repeat>
+    </section>
+  </xml>
+
+  <xml name="search_param_input" token_label="Estimator parameter:" token_help="One parameter per box. For example: C: [1, 10, 100, 1000]. See bottom for more examples">
+    <param name="search_p" type="text" value="" size="100" optional="true" label="@LABEL@" help="@HELP@">
+      <sanitizer>
+        <valid initial="default">
+          <add value="&apos;"/>
+          <add value="&quot;"/>
+          <add value="["/>
+          <add value="]"/>
+        </valid>
+      </sanitizer>
+    </param>
+  </xml>
+
+  <xml name="search_cv_options">
+      <expand macro="scoring"/>
+      <expand macro="model_validation_common_options"/>
+      <expand macro="pre_dispatch" value="2*n_jobs" help="Controls the number of jobs that get dispatched during parallel execution"/>
+      <param argument="iid" type="boolean" truevalue="booltrue" falsevalue="boolfalse" checked="true" label="iid" help="If True, data is identically distributed across the folds"/>
+      <param argument="refit" type="boolean" truevalue="booltrue" falsevalue="boolfalse" checked="true" label="refit" help="Refit an estimator using the best found parameters on the whole dataset."/>
+      <!--error_score-->
+      <param argument="return_train_score" type="boolean" truevalue="booltrue" falsevalue="boolfalse" checked="false" label="return_train_score" help=""/>
+  </xml>
+
+  <xml name="estimator_selector_all">
+    <conditional name="estimator_selector">
+      <param name="selected_module" type="select" label="Choose the module that contains target estimator:" >
+        <option value="svm" selected="true">sklearn.svm</option>
+        <option value="linear_model">sklearn.linear_model</option>
+        <option value="ensemble">sklearn.ensemble</option>
+        <option value="naive_bayes">sklearn.naive_bayes</option>
+        <option value="tree">sklearn.tree</option>
+        <option value="neighbors">sklearn.neighbors</option>
+        <option value="xgboost">xgboost</option>
+        <!--more-->
+      </param>
+      <when value="svm">
+        <param name="selected_estimator" type="select" label="Choose estimator class:">
+          <option value="LinearSVC" selected="true">LinearSVC</option>
+          <option value="LinearSVR">LinearSVR</option>
+          <option value="NuSVC">NuSVC</option>
+          <option value="NuSVR">NuSVR</option>
+          <option value="OneClassSVM">OneClassSVM</option>
+          <option value="SVC">SVC</option>
+          <option value="SVR">SVR</option>
+        </param>
+        <expand macro="estimator_params_text"/>
+      </when>
+      <when value="linear_model">
+        <param name="selected_estimator" type="select" label="Choose estimator class:">
+          <option value="ARDRegression" selected="true">ARDRegression</option>
+          <option value="BayesianRidge">BayesianRidge</option>
+          <option value="ElasticNet">ElasticNet</option>
+          <option value="ElasticNetCV">ElasticNetCV</option>
+          <option value="HuberRegressor">HuberRegressor</option>
+          <option value="Lars">Lars</option>
+          <option value="LarsCV">LarsCV</option>
+          <option value="Lasso">Lasso</option>
+          <option value="LassoCV">LassoCV</option>
+          <option value="LassoLars">LassoLars</option>
+          <option value="LassoLarsCV">LassoLarsCV</option>
+          <option value="LassoLarsIC">LassoLarsIC</option>
+          <option value="LinearRegression">LinearRegression</option>
+          <option value="LogisticRegression">LogisticRegression</option>
+          <option value="LogisticRegressionCV">LogisticRegressionCV</option>
+          <option value="MultiTaskLasso">MultiTaskLasso</option>
+          <option value="MultiTaskElasticNet">MultiTaskElasticNet</option>
+          <option value="MultiTaskLassoCV">MultiTaskLassoCV</option>
+          <option value="MultiTaskElasticNetCV">MultiTaskElasticNetCV</option>
+          <option value="OrthogonalMatchingPursuit">OrthogonalMatchingPursuit</option>
+          <option value="OrthogonalMatchingPursuitCV">OrthogonalMatchingPursuitCV</option>
+          <option value="PassiveAggressiveClassifier">PassiveAggressiveClassifier</option>
+          <option value="PassiveAggressiveRegressor">PassiveAggressiveRegressor</option>
+          <option value="Perceptron">Perceptron</option>
+          <option value="RANSACRegressor">RANSACRegressor</option>
+          <option value="Ridge">Ridge</option>
+          <option value="RidgeClassifier">RidgeClassifier</option>
+          <option value="RidgeClassifierCV">RidgeClassifierCV</option>
+          <option value="RidgeCV">RidgeCV</option>
+          <option value="SGDClassifier">SGDClassifier</option>
+          <option value="SGDRegressor">SGDRegressor</option>
+          <option value="TheilSenRegressor">TheilSenRegressor</option>
+        </param>
+        <expand macro="estimator_params_text"/>
+      </when>
+      <when value="ensemble">
+        <param name="selected_estimator" type="select" label="Choose estimator class:">
+          <option value="AdaBoostClassifier" selected="true">AdaBoostClassifier</option>
+          <option value="AdaBoostRegressor">AdaBoostRegressor</option>
+          <option value="BaggingClassifier">BaggingClassifier</option>
+          <option value="BaggingRegressor">BaggingRegressor</option>
+          <option value="ExtraTreesClassifier">ExtraTreesClassifier</option>
+          <option value="ExtraTreesRegressor">ExtraTreesRegressor</option>
+          <option value="GradientBoostingClassifier">GradientBoostingClassifier</option>
+          <option value="GradientBoostingRegressor">GradientBoostingRegressor</option>
+          <option value="IsolationForest">IsolationForest</option>
+          <option value="RandomForestClassifier">RandomForestClassifier</option>
+          <option value="RandomForestRegressor">RandomForestRegressor</option>
+          <option value="RandomTreesEmbedding">RandomTreesEmbedding</option>
+          <option value="VotingClassifier">VotingClassifier</option>
+        </param>
+        <expand macro="estimator_params_text"/>
+      </when>
+      <when value="naive_bayes">
+        <param name="selected_estimator" type="select" label="Choose estimator class:">
+          <option value="BernoulliNB" selected="true">BernoulliNB</option>
+          <option value="GaussianNB">GaussianNB</option>
+          <option value="MultinomialNB">MultinomialNB</option>
+        </param>
+        <expand macro="estimator_params_text"/>
+      </when>
+      <when value="tree">
+        <param name="selected_estimator" type="select" label="Choose estimator class:">
+          <option value="DecisionTreeClassifier" selected="true">DecisionTreeClassifier</option>
+          <option value="DecisionTreeRegressor">DecisionTreeRegressor</option>
+          <option value="ExtraTreeClassifier">ExtraTreeClassifier</option>
+          <option value="ExtraTreeRegressor">ExtraTreeRegressor</option>
+        </param>
+        <expand macro="estimator_params_text"/>
+      </when>
+      <when value="neighbors">
+        <param name="selected_estimator" type="select" label="Choose estimator class:">
+          <option value="BallTree" selected="true">BallTree</option>
+          <option value="DistanceMetric">DistanceMetric</option>
+          <option value="KDTree">KDTree</option>
+          <option value="KernelDensity">KernelDensity</option>
+          <option value="KNeighborsClassifier">KNeighborsClassifier</option>
+          <option value="KNeighborsRegressor">KNeighborsRegressor</option>
+          <option value="LocalOutlierFactor">LocalOutlierFactor</option>
+          <option value="RadiusNeighborsClassifier">RadiusNeighborsClassifier</option>
+          <option value="RadiusNeighborsRegressor">RadiusNeighborsRegressor</option>
+          <option value="NearestCentroid">NearestCentroid</option>
+          <option value="NearestNeighbors">NearestNeighbors</option>
+        </param>
+        <expand macro="estimator_params_text"/>
+      </when>
+      <when value="xgboost">
+        <param name="selected_estimator" type="select" label="Choose estimator class:">
+          <option value="XGBRegressor" selected="true">XGBRegressor</option>
+          <option value="XGBClassifier">XGBClassifier</option>
+        </param>
+        <expand macro="estimator_params_text"/>
+      </when>
+    </conditional>
+  </xml>
+
+  <xml name="estimator_params_text" token_label="Type in estimator parameters:"
+        token_help="Parameters in dictionary without braces ('{}'), e.g., 'C': 1, 'kernel': 'linear'. No double quotes. Leave this box blank for default estimator.">
+    <param name="text_params" type="text" value="" size="50" optional="true" label="@LABEL@" help="@HELP@">
+      <sanitizer>
+        <valid initial="default">
+          <add value="&apos;"/>
+        </valid>
+      </sanitizer>
+    </param>
+  </xml>
+
+  <xml name="kernel_approximation_all">
+    <conditional name="kernel_approximation_selector">
+      <param name="select_algorithm" type="select" label="Choose a kernel approximation algorithm:">
+        <option value="Nystroem" selected="true">Nystroem</option>
+        <option value="RBFSampler">RBFSampler</option>
+        <option value="AdditiveChi2Sampler">AdditiveChi2Sampler</option>
+        <option value="SkewedChi2Sampler">SkewedChi2Sampler</option>
+      </param>
+      <when value="Nystroem">
+        <expand macro="estimator_params_text" label="Type in kernel approximater parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'kernel': 'rbf'. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="RBFSampler">
+        <expand macro="estimator_params_text" label="Type in kernel approximater parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'gamma': 1.0. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="AdditiveChi2Sampler">
+        <expand macro="estimator_params_text" label="Type in kernel approximater parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'sample_steps': 2, 'sample_interval': None. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="SkewedChi2Sampler">
+        <expand macro="estimator_params_text" label="Type in kernel approximater parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'skewedness': 1.0. No double quotes. Leave this box blank for class default."/>
+      </when>
+    </conditional>
+  </xml>
+
+  <xml name="matrix_decomposition_all">
+    <conditional name="matrix_decomposition_selector">
+      <param name="select_algorithm" type="select" label="Choose a matrix decomposition algorithm:">
+        <option value="DictionaryLearning" selected="true">DictionaryLearning</option>
+        <option value="FactorAnalysis">FactorAnalysis</option>
+        <option value="FastICA">FastICA</option>
+        <option value="IncrementalPCA">IncrementalPCA</option>
+        <option value="KernelPCA">KernelPCA</option>
+        <option value="LatentDirichletAllocation">LatentDirichletAllocation</option>
+        <option value="MiniBatchDictionaryLearning">MiniBatchDictionaryLearning</option>
+        <option value="MiniBatchSparsePCA">MiniBatchSparsePCA</option>
+        <option value="NMF">NMF</option>
+        <option value="PCA">PCA</option>
+        <option value="SparsePCA">SparsePCA</option>
+        <option value="SparseCoder">SparseCoder</option>
+        <option value="TruncatedSVD">TruncatedSVD</option>
+      </param>
+      <when value="DictionaryLearning">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': None, 'alpha': 1.0. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="FactorAnalysis">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'random_state': 42. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="FastICA">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'random_state': 42. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="IncrementalPCA">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'whiten': False. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="KernelPCA">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'random_state': 42. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="LatentDirichletAllocation">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'random_state': 42. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="MiniBatchDictionaryLearning">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'random_state': 42. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="MiniBatchSparsePCA">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'random_state': 42. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="NMF">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'init': 'random'. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="PCA">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'random_state': 42. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="SparsePCA">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 100, 'random_state': 42. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="SparseCoder">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'transform_algorithm': 'omp', 'transform_alpha': 1.0. No double quotes. Leave this box blank for class default."/>
+      </when>
+      <when value="TruncatedSVD">
+        <expand macro="estimator_params_text" label="Type in maxtrix decomposition parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_components': 2, 'algorithm': 'randomized'. No double quotes. Leave this box blank for default estimator."/>
+      </when>
+    </conditional>
+  </xml>
+
+  <xml name="FeatureAgglomeration">
+    <conditional name="FeatureAgglomeration_selector">
+      <param name="select_algorithm" type="select" label="Choose the algorithm:">
+        <option value="FeatureAgglomeration" selected="true">FeatureAgglomeration</option>
+      </param>
+      <when value="FeatureAgglomeration">
+        <expand macro="estimator_params_text" label="Type in parameters:"
+              help="Parameters in dictionary without braces ('{}'), e.g., 'n_clusters': 2, 'affinity': 'euclidean'. No double quotes. Leave this box blank for class default."/>
+      </when>
+    </conditional>
+  </xml>
   <!-- Outputs -->
 
   <xml name="output">
@@ -1118,7 +1472,6 @@
     </outputs>
   </xml>
 
-
   <!--Citations-->
   <xml name="eden_citation">
     <citations>
--- a/model_validation.xml	Fri Jul 13 03:56:45 2018 -0400
+++ b/model_validation.xml	Sat Aug 04 12:35:35 2018 -0400
@@ -21,13 +21,14 @@
 import ast
 import pickle
 import numpy as np
-import sklearn.model_selection
-from sklearn import svm, linear_model, ensemble, preprocessing
+import sklearn.feature_selection
+from sklearn import preprocessing, model_selection, svm, linear_model, ensemble, naive_bayes, tree, neighbors
 from sklearn.pipeline import Pipeline
 
 @COLUMNS_FUNCTION@
+@GET_ESTIMATOR_FUNCTION@
+@FEATURE_SELECTOR_FUNCTION@
 
-@FEATURE_SELECTOR_FUNCTION@
 
 input_json_path = sys.argv[1]
 with open(input_json_path, "r") as param_handler:
@@ -85,14 +86,12 @@
 
 ## Set up feature selector and add to pipeline steps.
 if params['feature_selection']['do_feature_selection'] == 'Yes':
-    feature_selector = feature_selector(params['feature_selection']['feature_selection_algorithms'])
+    feature_selector = feature_selector(params['feature_selection']['fs_algorithm_selector'])
     pipeline_steps.append( ('feature_selector', feature_selector) )
 
 ## Set up estimator and add to pipeline.
-estimator=params["model_validation_functions"]["estimator"]
-if params["model_validation_functions"]["extra_estimator"]["has_estimator"] == 'no':
-    estimator = params["model_validation_functions"]["extra_estimator"]["new_estimator"]
-estimator = eval(estimator.replace('__dq__', '"').replace("__sq__","'"))
+estimator_json = params["model_validation_functions"]['estimator_selector']
+estimator = get_estimator(estimator_json)
 
 pipeline_steps.append( ('estimator', estimator) )
 
@@ -101,7 +100,7 @@
 ## Set up validator, run pipeline through validator and return results.
 
 validator = params["model_validation_functions"]["selected_function"]
-validator = getattr(sklearn.model_selection, validator)
+validator = getattr(model_selection, validator)
 
 selected_function = params["model_validation_functions"]["selected_function"]
 rval_type = params["model_validation_functions"].get("return_type", None)
@@ -123,24 +122,11 @@
     options['param_range'] = eval(options['param_range'])
     train_scores, test_scores = validator(pipeline, X, y, **options)
     rval = eval(rval_type)
-elif selected_function == 'GridSearchCV':
-    param_grid = params["model_validation_functions"]["param_grid"].replace("__sq__","'")\
-        .replace('__dq__','"').replace("__oc__", "{").replace("__cc__", "}")\
-        .replace("__ob__", "[").replace("__cb__", "]")
-    param_grid = ast.literal_eval(param_grid)
-    grid = validator(pipeline, param_grid, **options)
-    grid.fit(X, y)
-    rval = getattr(grid, rval_type)
-    if rval_type in ["best_estimator_", "best_score_", "best_index_"]:
-        rval = [rval]     
 else:
     rval = validator(pipeline, X, y, **options)
 
 rval = pandas.DataFrame(rval)
-if rval_type and rval_type == "cv_results_":
-    rval.to_csv(path_or_buf="$outfile", sep='\t', header=True, index=False)
-else:
-    rval.to_csv(path_or_buf="$outfile", sep='\t', header=False, index=False)
+rval.to_csv(path_or_buf="$outfile", sep='\t', header=False, index=False)
 
             ]]>
         </configfile>
@@ -166,12 +152,13 @@
             </param>
             <when value="No"/>
             <when value="Yes">
-                <expand macro="feature_selection_all"/>
+                <expand macro="feature_selection_all">
+                    <expand macro="fs_selectfrommodel_no_prefitted"/>
+                </expand>
             </when>
         </conditional>
         <conditional name="model_validation_functions">
             <param name="selected_function" type="select" label="Select a model validation function">
-                <option value="GridSearchCV">GridSearchCV - Exhaustive search over specified parameter values for an estimator </option>
                 <option value="cross_validate">cross_validate - Evaluate metric(s) by cross-validation and also record fit/score times</option>
                 <option value="cross_val_predict">cross_val_predict - Generate cross-validated estimates for each input data point</option>
                 <option value="cross_val_score">cross_val_score - Evaluate a score by cross-validation</option>
@@ -179,28 +166,8 @@
                 <option value="permutation_test_score">permutation_test_score - Evaluate the significance of a cross-validated score with permutations</option>
                 <option value="validation_curve">validation_curve - Validation curve</option>
             </param>
-            <when value="GridSearchCV">
-                <expand macro="estimator_input_no_fit" />
-                <param argument="param_grid" type="text" value="[{'feature_selector__k': [3, 5, 7, 9], 'estimator__C': [1, 10, 100, 1000]}]" label="param_grid" help="Dictionary with parameters names (string) as keys and lists of parameter settings to try as values, or a list of such dictionaries, in which case the grids spanned by each dictionary in the list are explored"/>
-                <section name="options" title="Other Options" expanded="false">
-                    <expand macro="scoring"/>
-                    <expand macro="model_validation_common_options"/>
-                    <expand macro="pre_dispatch" value="2*n_jobs" help="Controls the number of jobs that get dispatched during parallel execution"/>
-                    <param argument="iid" type="boolean" truevalue="booltrue" falsevalue="boolfalse" checked="true" label="iid" help="Data is identically distributed?"/>
-                    <param argument="refit" type="boolean" truevalue="booltrue" falsevalue="boolfalse" checked="true" label="refit" help="Refit an estimator using the best found parameters on the whole dataset."/>
-                    <!--error_score-->
-                    <param argument="return_train_score" type="boolean" truevalue="booltrue" falsevalue="boolfalse" checked="false" label="return_train_score" help=""/>
-                </section>
-                <param name="return_type" type="select" label="Select a return type">
-                    <option value="cv_results_" selected="true">cv_results_</option>
-                    <option value="best_estimator_">best_estimator_</option>
-                    <option value="best_score_">best_score_</option>
-                    <option value="best_params_">best_params_</option>
-                    <option value="best_index_">best_index_</option>
-                </param>
-            </when>
             <when value="cross_validate">
-                <expand macro="estimator_input_no_fit" />
+                <expand macro="estimator_selector_all" />
                 <section name="options" title="Other Options" expanded="false">
                     <!--groups-->
                     <expand macro="model_validation_common_options"/>
@@ -216,7 +183,7 @@
                 </param>
             </when>
             <when value="cross_val_predict">
-                <expand macro="estimator_input_no_fit" />
+                <expand macro="estimator_selector_all" />
                 <section name="options" title="Other Options" expanded="false">
                     <!--groups-->
                     <expand macro="model_validation_common_options" />
@@ -229,7 +196,7 @@
                 </section>
             </when>
             <when value="cross_val_score">
-                <expand macro="estimator_input_no_fit" />
+                <expand macro="estimator_selector_all" />
                 <section name="options" title="Other Options" expanded="false">
                     <!--groups-->
                     <expand macro="model_validation_common_options"/>
@@ -239,7 +206,7 @@
                 </section>
             </when>
             <when value="learning_curve">
-                <expand macro="estimator_input_no_fit" />
+                <expand macro="estimator_selector_all" />
                 <section name="options" title="Other Options" expanded="false">
                     <!--groups-->
                     <expand macro="model_validation_common_options"/>
@@ -257,7 +224,7 @@
                 </param>
             </when>
             <when value="permutation_test_score">
-                <expand macro="estimator_input_no_fit" />
+                <expand macro="estimator_selector_all" />
                 <section name="options" title="Other Options" expanded="false">
                     <!--groups-->
                     <expand macro="model_validation_common_options"/>
@@ -272,7 +239,7 @@
                 </param>
             </when>
             <when value="validation_curve">
-                <expand macro="estimator_input_no_fit" />
+                <expand macro="estimator_selector_all" />
                 <section name="options" title="Other Options" expanded="false">
                     <param name="param_name" type="text" value="gamma" label="param_name" help="Name of the parameter that will be varied"/>
                     <param name="param_range" type="text" value="np.logspace(-6, -1, 5)" label="param_range" help="The values of the parameter that will be evaluated."/>
@@ -295,8 +262,8 @@
     <tests>
         <test>
             <param name="selected_function" value="cross_validate"/>
-            <param name="estimator" value="linear_model.LassoCV()"/>
-            <param name="has_estimator" value="yes"/>
+            <param name="selected_module" value="linear_model"/>
+            <param name="selected_estimator" value="LassoCV"/>
             <param name="infile1" value="regression_train.tabular" ftype="tabular"/>
             <param name="col1" value="1,2,3,4,5"/>
             <param name="infile2" value="regression_train.tabular" ftype="tabular"/>
@@ -305,8 +272,8 @@
         </test>
         <test>
             <param name="selected_function" value="cross_val_predict"/>
-            <param name="estimator" value="linear_model.LassoCV()"/>
-            <param name="has_estimator" value="yes"/>
+            <param name="selected_module" value="linear_model"/>
+            <param name="selected_estimator" value="LassoCV"/>
             <param name="infile1" value="regression_train.tabular" ftype="tabular"/>
             <param name="col1" value="1,2,3,4,5"/>
             <param name="infile2" value="regression_train.tabular" ftype="tabular"/>
@@ -315,8 +282,8 @@
         </test>
         <test>
             <param name="selected_function" value="cross_val_score"/>
-            <param name="estimator" value="linear_model.LassoCV()"/>
-            <param name="has_estimator" value="yes"/>
+            <param name="selected_module" value="linear_model"/>
+            <param name="selected_estimator" value="LassoCV"/>
             <param name="infile1" value="regression_train.tabular" ftype="tabular"/>
             <param name="col1" value="1,2,3,4,5"/>
             <param name="infile2" value="regression_train.tabular" ftype="tabular"/>
@@ -325,8 +292,8 @@
         </test>
         <test>
             <param name="selected_function" value="learning_curve"/>
-            <param name="estimator" value="linear_model.LassoCV()"/>
-            <param name="has_estimator" value="yes"/>
+            <param name="selected_module" value="linear_model"/>
+            <param name="selected_estimator" value="LassoCV"/>
             <param name="infile1" value="regression_X.tabular" ftype="tabular"/>
             <param name="header1" value="true" />
             <param name="col1" value="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17"/>
@@ -337,8 +304,8 @@
         </test>
         <test>
             <param name="selected_function" value="permutation_test_score"/>
-            <param name="estimator" value="linear_model.LassoCV()"/>
-            <param name="has_estimator" value="yes"/>
+            <param name="selected_module" value="linear_model"/>
+            <param name="selected_estimator" value="LassoCV"/>
             <param name="infile1" value="regression_train.tabular" ftype="tabular"/>
             <param name="col1" value="1,2,3,4,5"/>
             <param name="infile2" value="regression_train.tabular" ftype="tabular"/>
@@ -347,8 +314,9 @@
         </test>
         <test>
             <param name="selected_function" value="validation_curve"/>
-            <param name="estimator" value="svm.SVC(kernel=&quot;linear&quot;)"/>
-            <param name="has_estimator" value="yes"/>
+            <param name="selected_module" value="svm"/>
+            <param name="selected_estimator" value="SVC"/>
+            <param name="text_params" value="'kernel': 'linear'"/>
             <param name="infile1" value="regression_X.tabular" ftype="tabular"/>
             <param name="header1" value="true" />
             <param name="selected_column_selector_option" value="all_columns"/>
@@ -358,79 +326,15 @@
             <param name="return_type" value="test_scores"/>
             <output name="outfile" file="mv_result06.tabular"/>
         </test>
-        <test>
-            <param name="do_feature_selection" value="Yes"/>
-            <param name="selected_algorithm" value="SelectKBest"/>
-            <param name="score_func" value="chi2"/>
-            <param name="selected_function" value="GridSearchCV"/>
-            <param name="estimator" value="svm.SVR(kernel=&quot;linear&quot;)"/>
-            <param name="has_estimator" value="yes"/>
-            <param name="param_grid" value="[{'feature_selector__k': [3, 7], 'estimator__C': [1, 100]}]"/>
-            <param name="return_type" value="best_score_"/>
-            <param name="infile1" value="regression_X.tabular" ftype="tabular"/>
-            <param name="header1" value="true" />
-            <param name="selected_column_selector_option" value="all_columns"/>
-            <param name="infile2" value="regression_y.tabular" ftype="tabular"/>
-            <param name="header2" value="true" />
-            <param name="selected_column_selector_option2" value="all_columns"/>
-            <output name="outfile" >
-                <assert_contents>
-                    <has_line line="0.7824428015300172" />
-                </assert_contents>
-            </output>
-        </test>
-        <test>
-            <param name="do_pre_processing" value="Yes"/>
-            <param name="selected_pre_processor" value="RobustScaler"/>
-            <param name="do_feature_selection" value="Yes"/>
-            <param name="selected_algorithm" value="SelectKBest"/>
-            <param name="score_func" value="f_classif"/>
-            <param name="selected_function" value="GridSearchCV"/>
-            <param name="estimator" value="svm.SVR(kernel=&quot;linear&quot;)"/>
-            <param name="has_estimator" value="yes"/>
-            <param name="param_grid" value="[{'feature_selector__k': [3, 5, 7, 9], 'estimator__C': [1, 10, 100, 1000]}]"/>
-            <param name="return_type" value="best_score_"/>
-            <param name="infile1" value="regression_X.tabular" ftype="tabular"/>
-            <param name="header1" value="true" />
-            <param name="selected_column_selector_option" value="all_columns"/>
-            <param name="infile2" value="regression_y.tabular" ftype="tabular"/>
-            <param name="header2" value="true" />
-            <param name="selected_column_selector_option2" value="all_columns"/>
-            <output name="outfile" >
-                <assert_contents>
-                    <has_line line="0.7938837807353147" />
-                </assert_contents>
-            </output>
-        </test>
-         <test>
-            <param name="do_pre_processing" value="Yes"/>
-            <param name="selected_pre_processor" value="RobustScaler"/>
-            <param name="selected_function" value="GridSearchCV"/>
-            <param name="estimator" value="svm.SVR(kernel=&quot;linear&quot;)"/>
-            <param name="has_estimator" value="yes"/>
-            <param name="param_grid" value="[{'estimator__C': [1, 10, 100, 1000]}]"/>
-            <param name="return_type" value="best_score_"/>
-            <param name="infile1" value="regression_X.tabular" ftype="tabular"/>
-            <param name="header1" value="true" />
-            <param name="selected_column_selector_option" value="all_columns"/>
-            <param name="infile2" value="regression_y.tabular" ftype="tabular"/>
-            <param name="header2" value="true" />
-            <param name="selected_column_selector_option2" value="all_columns"/>
-            <output name="outfile" >
-                <assert_contents>
-                    <has_line line="0.7904476204861263" />
-                </assert_contents>
-            </output>
-        </test>
     </tests>
     <help>
         <![CDATA[
 **What it does**
 This tool includes model validation functions to evaluate estimator performance in the cross-validation approach. This tool is based on
 sklearn.model_selection package.
-For information about classification metric functions and their parameter settings please refer to `Scikit-learn classification metrics`_.
+For information about model validation functions and their parameter settings please refer to `Scikit-learn model_selection`_.
 
-.. _`Scikit-learn classification metrics`: http://scikit-learn.org/stable/modules/model_evaluation.html#classification-metrics
+.. _`Scikit-learn model_selection`: http://scikit-learn.org/stable/modules/classes.html#module-sklearn.model_selection
         ]]>
     </help>
     <expand macro="sklearn_citation"/>
--- a/test-data/feature_selection_result01	Fri Jul 13 03:56:45 2018 -0400
+++ b/test-data/feature_selection_result01	Sat Aug 04 12:35:35 2018 -0400
@@ -1,262 +1,11 @@
-temp_1	average
-69.0	69.7
-59.0	58.1
-88.0	77.3
-65.0	64.7
-50.0	47.5
-51.0	48.2
-52.0	48.6
-78.0	76.7
-35.0	45.2
-40.0	46.1
-47.0	45.3
-72.0	76.3
-76.0	74.4
-39.0	45.3
-78.0	72.2
-71.0	67.3
-48.0	47.7
-72.0	77.0
-57.0	54.7
-40.0	45.1
-54.0	47.6
-58.0	53.2
-68.0	58.6
-65.0	55.3
-47.0	48.8
-44.0	45.6
-64.0	67.1
-62.0	57.1
-66.0	65.7
-70.0	71.8
-57.0	54.2
-50.0	50.5
-55.0	51.8
-55.0	49.5
-42.0	45.2
-65.0	60.1
-63.0	65.6
-48.0	47.3
-42.0	46.3
-51.0	46.2
-64.0	68.0
-75.0	74.6
-52.0	46.7
-67.0	68.6
-68.0	68.7
-54.0	55.0
-62.0	56.8
-76.0	76.1
-73.0	73.1
-52.0	50.3
-70.0	73.9
-77.0	77.4
-60.0	56.6
-52.0	53.3
-79.0	75.0
-76.0	57.2
-66.0	66.5
-57.0	61.8
-66.0	57.4
-61.0	58.4
-55.0	53.1
-48.0	48.1
-49.0	49.2
-65.0	66.7
-60.0	62.5
-56.0	53.0
-59.0	57.4
-44.0	45.7
-82.0	63.2
-64.0	67.0
-43.0	45.5
-64.0	55.7
-63.0	52.7
-70.0	70.6
-71.0	52.4
-76.0	73.5
-68.0	62.1
-39.0	45.3
-71.0	70.7
-69.0	71.7
-74.0	71.5
-81.0	64.1
-51.0	49.3
-45.0	46.8
-87.0	76.8
-71.0	73.8
-55.0	60.3
-80.0	76.9
-67.0	69.0
-61.0	61.4
-46.0	46.6
-39.0	45.1
-67.0	68.3
-52.0	47.8
-67.0	69.8
-75.0	71.2
-68.0	73.3
-92.0	68.2
-67.0	72.8
-44.0	45.8
-61.0	61.0
-65.0	53.4
-68.0	73.0
-87.0	62.1
-117.0	54.8
-80.0	76.4
-57.0	51.0
-67.0	63.6
-58.0	54.0
-65.0	56.2
-52.0	48.6
-59.0	55.3
-57.0	53.9
-81.0	59.2
-75.0	77.1
-76.0	77.4
-57.0	64.8
-69.0	74.2
-77.0	66.8
-55.0	49.9
-49.0	46.8
-54.0	52.7
-55.0	51.2
-56.0	55.6
-68.0	74.6
-54.0	53.4
-67.0	69.0
-49.0	46.9
-49.0	49.1
-56.0	48.5
-73.0	71.0
-66.0	66.4
-69.0	66.5
-82.0	64.5
-90.0	76.7
-51.0	50.7
-77.0	57.1
-60.0	61.4
-74.0	72.8
-85.0	77.2
-68.0	62.8
-56.0	49.5
-71.0	56.2
-62.0	59.5
-83.0	77.3
-64.0	65.4
-56.0	48.4
-41.0	45.1
-65.0	66.2
-65.0	53.7
-40.0	46.0
-45.0	45.6
-52.0	48.4
-63.0	51.7
-52.0	47.6
-60.0	57.9
-81.0	75.7
-75.0	75.8
-59.0	51.4
-73.0	77.1
-75.0	77.3
-60.0	58.5
-75.0	71.3
-59.0	57.6
-53.0	49.1
-79.0	77.2
-57.0	52.1
-75.0	67.6
-71.0	69.4
-53.0	50.2
-46.0	48.8
-81.0	76.9
-49.0	48.9
-57.0	48.4
-60.0	58.8
-67.0	73.7
-61.0	64.1
-66.0	69.5
-64.0	51.9
-66.0	65.7
-64.0	52.2
-71.0	65.2
-75.0	63.8
-48.0	46.4
-53.0	52.5
-49.0	47.1
-85.0	68.5
-62.0	49.4
-50.0	47.0
-58.0	55.9
-72.0	77.2
-55.0	50.7
-74.0	72.3
-85.0	77.3
-73.0	77.3
-52.0	47.4
-67.0	67.6
-45.0	45.1
-46.0	47.2
-66.0	60.6
-71.0	77.0
-70.0	69.3
-58.0	49.9
-72.0	77.1
-74.0	75.4
-65.0	64.5
-77.0	58.8
-59.0	50.9
-45.0	45.7
-53.0	50.5
-53.0	54.9
-79.0	77.3
-49.0	49.0
-63.0	62.9
-69.0	56.5
-60.0	50.8
-64.0	62.5
-79.0	71.0
-55.0	47.0
-73.0	56.0
-60.0	59.1
-67.0	70.2
-42.0	45.2
-60.0	65.0
-57.0	49.8
-35.0	45.2
-75.0	70.3
-61.0	51.1
-51.0	50.6
-71.0	71.9
-74.0	75.3
-48.0	45.4
-74.0	74.9
-76.0	70.8
-58.0	51.6
-51.0	50.4
-72.0	72.6
-76.0	67.2
-52.0	47.9
-53.0	48.2
-65.0	69.1
-58.0	58.1
-77.0	75.6
-61.0	52.9
-67.0	65.3
-54.0	49.3
-79.0	67.4
-77.0	64.3
-71.0	67.7
-58.0	57.7
-68.0	55.9
-40.0	45.4
-80.0	77.3
-74.0	62.3
-57.0	45.5
-52.0	47.8
-71.0	75.1
-49.0	53.6
-89.0	59.0
-60.0	60.2
-59.0	58.3
+0	1
+143.762620712	-1.1796457192799998
+-88.5787166225	-2.5710918402200003
+-82.8452345578	-0.168636324107
+72.4951388149	0.991068834926
+11.805182128	-0.7096855607860001
+-63.9354970901	0.9841122108220001
+126.32584079600001	0.35353444883900004
+23.0341392692	1.03188231893
+67.6714937696	-0.8214378651719999
+47.39275848810001	-0.0942409319417
--- a/test-data/feature_selection_result08	Fri Jul 13 03:56:45 2018 -0400
+++ b/test-data/feature_selection_result08	Sat Aug 04 12:35:35 2018 -0400
@@ -1,262 +1,11 @@
-day	temp_2	temp_1	average	forecast_noaa	forecast_acc	forecast_under	friend
-19.0	68.0	69.0	69.7	65.0	74.0	71.0	88.0
-14.0	60.0	59.0	58.1	57.0	63.0	58.0	66.0
-30.0	85.0	88.0	77.3	75.0	79.0	77.0	70.0
-15.0	82.0	65.0	64.7	63.0	69.0	64.0	58.0
-18.0	54.0	50.0	47.5	44.0	48.0	49.0	58.0
-25.0	48.0	51.0	48.2	45.0	51.0	49.0	63.0
-25.0	49.0	52.0	48.6	45.0	52.0	47.0	41.0
-20.0	73.0	78.0	76.7	75.0	78.0	77.0	66.0
-17.0	39.0	35.0	45.2	43.0	47.0	46.0	38.0
-8.0	42.0	40.0	46.1	45.0	51.0	47.0	36.0
-28.0	42.0	47.0	45.3	41.0	49.0	44.0	58.0
-17.0	76.0	72.0	76.3	76.0	78.0	77.0	88.0
-7.0	69.0	76.0	74.4	73.0	77.0	74.0	72.0
-15.0	40.0	39.0	45.3	45.0	49.0	47.0	46.0
-27.0	71.0	78.0	72.2	70.0	74.0	72.0	84.0
-31.0	64.0	71.0	67.3	63.0	72.0	68.0	85.0
-20.0	54.0	48.0	47.7	44.0	52.0	49.0	61.0
-10.0	73.0	72.0	77.0	77.0	78.0	77.0	68.0
-23.0	56.0	57.0	54.7	50.0	58.0	55.0	70.0
-24.0	45.0	40.0	45.1	44.0	47.0	46.0	39.0
-19.0	50.0	54.0	47.6	47.0	49.0	48.0	53.0
-6.0	65.0	58.0	53.2	52.0	57.0	55.0	71.0
-17.0	60.0	68.0	58.6	58.0	62.0	59.0	54.0
-29.0	60.0	65.0	55.3	55.0	59.0	55.0	65.0
-1.0	48.0	47.0	48.8	46.0	49.0	49.0	51.0
-12.0	44.0	44.0	45.6	43.0	50.0	45.0	42.0
-30.0	64.0	64.0	67.1	64.0	70.0	66.0	69.0
-23.0	59.0	62.0	57.1	57.0	58.0	59.0	67.0
-30.0	68.0	66.0	65.7	64.0	67.0	65.0	74.0
-12.0	77.0	70.0	71.8	67.0	73.0	73.0	90.0
-2.0	59.0	57.0	54.2	54.0	58.0	55.0	70.0
-17.0	55.0	50.0	50.5	46.0	51.0	50.0	57.0
-3.0	58.0	55.0	51.8	49.0	54.0	50.0	71.0
-21.0	57.0	55.0	49.5	46.0	51.0	49.0	67.0
-27.0	42.0	42.0	45.2	41.0	50.0	47.0	47.0
-24.0	64.0	65.0	60.1	57.0	61.0	60.0	41.0
-20.0	64.0	63.0	65.6	63.0	70.0	64.0	73.0
-16.0	49.0	48.0	47.3	45.0	52.0	46.0	28.0
-7.0	40.0	42.0	46.3	44.0	51.0	46.0	62.0
-7.0	44.0	51.0	46.2	45.0	49.0	46.0	38.0
-24.0	67.0	64.0	68.0	65.0	71.0	66.0	64.0
-30.0	79.0	75.0	74.6	74.0	76.0	75.0	63.0
-11.0	50.0	52.0	46.7	42.0	48.0	48.0	39.0
-9.0	85.0	67.0	68.6	66.0	73.0	69.0	80.0
-22.0	67.0	68.0	68.7	65.0	70.0	69.0	56.0
-25.0	53.0	54.0	55.0	53.0	57.0	57.0	42.0
-24.0	62.0	62.0	56.8	52.0	61.0	57.0	70.0
-16.0	77.0	76.0	76.1	76.0	78.0	75.0	61.0
-1.0	74.0	73.0	73.1	71.0	75.0	72.0	93.0
-18.0	50.0	52.0	50.3	50.0	53.0	50.0	35.0
-3.0	75.0	70.0	73.9	71.0	75.0	73.0	68.0
-2.0	73.0	77.0	77.4	75.0	80.0	79.0	62.0
-5.0	69.0	60.0	56.6	52.0	58.0	56.0	72.0
-13.0	55.0	52.0	53.3	50.0	55.0	53.0	54.0
-28.0	81.0	79.0	75.0	71.0	77.0	76.0	85.0
-9.0	77.0	76.0	57.2	53.0	61.0	57.0	74.0
-26.0	66.0	66.0	66.5	64.0	70.0	65.0	85.0
-10.0	68.0	57.0	61.8	58.0	64.0	61.0	62.0
-10.0	76.0	66.0	57.4	57.0	60.0	57.0	60.0
-19.0	60.0	61.0	58.4	58.0	60.0	57.0	41.0
-12.0	56.0	55.0	53.1	52.0	58.0	53.0	65.0
-24.0	57.0	48.0	48.1	46.0	50.0	48.0	54.0
-7.0	53.0	49.0	49.2	46.0	51.0	48.0	63.0
-27.0	66.0	65.0	66.7	64.0	67.0	68.0	73.0
-5.0	74.0	60.0	62.5	58.0	66.0	62.0	56.0
-11.0	55.0	56.0	53.0	53.0	53.0	51.0	36.0
-22.0	62.0	59.0	57.4	56.0	59.0	58.0	44.0
-11.0	36.0	44.0	45.7	41.0	46.0	47.0	35.0
-8.0	77.0	82.0	63.2	62.0	65.0	63.0	83.0
-29.0	64.0	64.0	67.0	65.0	71.0	65.0	76.0
-13.0	44.0	43.0	45.5	41.0	47.0	46.0	46.0
-30.0	56.0	64.0	55.7	51.0	57.0	56.0	57.0
-8.0	61.0	63.0	52.7	49.0	57.0	52.0	49.0
-20.0	65.0	70.0	70.6	67.0	71.0	70.0	79.0
-9.0	63.0	71.0	52.4	48.0	56.0	52.0	42.0
-3.0	76.0	76.0	73.5	69.0	76.0	75.0	85.0
-9.0	64.0	68.0	62.1	58.0	65.0	63.0	55.0
-16.0	39.0	39.0	45.3	44.0	49.0	44.0	39.0
-16.0	79.0	71.0	70.7	70.0	74.0	71.0	52.0
-25.0	68.0	69.0	71.7	68.0	73.0	73.0	89.0
-13.0	70.0	74.0	71.5	71.0	75.0	70.0	82.0
-12.0	75.0	81.0	64.1	62.0	67.0	63.0	81.0
-8.0	49.0	51.0	49.3	49.0	52.0	50.0	34.0
-12.0	52.0	45.0	46.8	44.0	50.0	45.0	61.0
-13.0	80.0	87.0	76.8	73.0	79.0	78.0	73.0
-4.0	76.0	71.0	73.8	71.0	76.0	73.0	86.0
-25.0	65.0	55.0	60.3	56.0	64.0	61.0	77.0
-12.0	76.0	80.0	76.9	72.0	79.0	77.0	81.0
-21.0	71.0	67.0	69.0	65.0	70.0	70.0	76.0
-30.0	64.0	61.0	61.4	60.0	65.0	62.0	78.0
-5.0	49.0	46.0	46.6	43.0	50.0	45.0	65.0
-19.0	35.0	39.0	45.1	42.0	46.0	45.0	51.0
-23.0	68.0	67.0	68.3	67.0	69.0	67.0	61.0
-29.0	48.0	52.0	47.8	43.0	48.0	47.0	50.0
-16.0	60.0	67.0	69.8	68.0	72.0	71.0	87.0
-14.0	74.0	75.0	71.2	67.0	75.0	73.0	77.0
-6.0	68.0	68.0	73.3	73.0	76.0	75.0	79.0
-6.0	81.0	92.0	68.2	65.0	70.0	67.0	71.0
-8.0	68.0	67.0	72.8	69.0	77.0	73.0	56.0
-3.0	45.0	44.0	45.8	43.0	46.0	47.0	56.0
-28.0	60.0	61.0	61.0	56.0	65.0	62.0	73.0
-5.0	65.0	65.0	53.4	49.0	58.0	52.0	41.0
-7.0	68.0	68.0	73.0	72.0	78.0	71.0	70.0
-3.0	77.0	87.0	62.1	62.0	66.0	64.0	69.0
-31.0	65.0	117.0	54.8	51.0	59.0	56.0	62.0
-18.0	72.0	80.0	76.4	75.0	77.0	75.0	66.0
-15.0	55.0	57.0	51.0	47.0	54.0	51.0	46.0
-10.0	63.0	67.0	63.6	61.0	66.0	64.0	68.0
-18.0	53.0	58.0	54.0	51.0	57.0	54.0	56.0
-26.0	61.0	65.0	56.2	53.0	57.0	57.0	41.0
-30.0	56.0	52.0	48.6	45.0	51.0	48.0	47.0
-27.0	57.0	59.0	55.3	52.0	58.0	55.0	39.0
-3.0	57.0	57.0	53.9	53.0	54.0	54.0	35.0
-20.0	89.0	81.0	59.2	56.0	63.0	61.0	66.0
-24.0	71.0	75.0	77.1	76.0	78.0	78.0	75.0
-31.0	88.0	76.0	77.4	76.0	78.0	79.0	95.0
-16.0	65.0	57.0	64.8	61.0	65.0	65.0	53.0
-6.0	68.0	69.0	74.2	72.0	76.0	75.0	86.0
-27.0	76.0	77.0	66.8	66.0	67.0	68.0	64.0
-16.0	58.0	55.0	49.9	47.0	54.0	51.0	55.0
-4.0	50.0	49.0	46.8	45.0	47.0	47.0	53.0
-9.0	53.0	54.0	52.7	48.0	56.0	54.0	57.0
-14.0	59.0	55.0	51.2	49.0	53.0	53.0	42.0
-29.0	51.0	56.0	55.6	53.0	59.0	54.0	45.0
-8.0	76.0	68.0	74.6	72.0	79.0	75.0	77.0
-14.0	52.0	54.0	53.4	49.0	58.0	55.0	44.0
-11.0	65.0	67.0	69.0	69.0	72.0	71.0	87.0
-13.0	45.0	49.0	46.9	45.0	51.0	46.0	33.0
-5.0	49.0	49.0	49.1	47.0	50.0	49.0	45.0
-29.0	57.0	56.0	48.5	48.0	52.0	47.0	49.0
-22.0	76.0	73.0	71.0	66.0	71.0	72.0	78.0
-25.0	65.0	66.0	66.4	65.0	67.0	66.0	60.0
-28.0	77.0	69.0	66.5	66.0	68.0	66.0	62.0
-14.0	77.0	82.0	64.5	64.0	66.0	66.0	65.0
-14.0	87.0	90.0	76.7	75.0	78.0	78.0	65.0
-23.0	51.0	51.0	50.7	49.0	53.0	51.0	43.0
-8.0	68.0	77.0	57.1	57.0	61.0	57.0	41.0
-11.0	57.0	60.0	61.4	58.0	66.0	61.0	58.0
-30.0	79.0	74.0	72.8	71.0	76.0	72.0	87.0
-26.0	80.0	85.0	77.2	73.0	79.0	76.0	74.0
-6.0	60.0	68.0	62.8	61.0	64.0	61.0	64.0
-11.0	62.0	56.0	49.5	46.0	53.0	50.0	37.0
-2.0	73.0	71.0	56.2	55.0	58.0	58.0	45.0
-16.0	60.0	62.0	59.5	57.0	60.0	59.0	40.0
-28.0	79.0	83.0	77.3	76.0	80.0	78.0	76.0
-19.0	71.0	64.0	65.4	62.0	68.0	67.0	56.0
-27.0	54.0	56.0	48.4	45.0	51.0	49.0	54.0
-25.0	40.0	41.0	45.1	42.0	49.0	44.0	31.0
-24.0	66.0	65.0	66.2	66.0	71.0	66.0	67.0
-4.0	57.0	65.0	53.7	49.0	55.0	54.0	38.0
-5.0	41.0	40.0	46.0	46.0	46.0	46.0	41.0
-1.0	45.0	45.0	45.6	43.0	50.0	44.0	29.0
-26.0	52.0	52.0	48.4	48.0	50.0	47.0	58.0
-12.0	64.0	63.0	51.7	50.0	52.0	52.0	63.0
-30.0	52.0	52.0	47.6	47.0	52.0	49.0	44.0
-13.0	58.0	60.0	57.9	55.0	62.0	56.0	77.0
-23.0	84.0	81.0	75.7	73.0	78.0	77.0	89.0
-14.0	77.0	75.0	75.8	74.0	76.0	77.0	77.0
-13.0	63.0	59.0	51.4	48.0	56.0	50.0	64.0
-9.0	72.0	73.0	77.1	77.0	80.0	79.0	94.0
-4.0	73.0	75.0	77.3	73.0	79.0	78.0	66.0
-16.0	59.0	60.0	58.5	56.0	60.0	59.0	59.0
-23.0	73.0	75.0	71.3	68.0	72.0	71.0	56.0
-11.0	66.0	59.0	57.6	56.0	60.0	58.0	40.0
-6.0	49.0	53.0	49.1	47.0	53.0	49.0	56.0
-6.0	80.0	79.0	77.2	76.0	81.0	79.0	60.0
-5.0	59.0	57.0	52.1	49.0	53.0	51.0	46.0
-2.0	79.0	75.0	67.6	64.0	71.0	67.0	77.0
-20.0	69.0	71.0	69.4	67.0	73.0	69.0	81.0
-19.0	57.0	53.0	50.2	50.0	52.0	51.0	42.0
-2.0	47.0	46.0	48.8	48.0	50.0	50.0	56.0
-22.0	82.0	81.0	76.9	72.0	77.0	76.0	70.0
-24.0	54.0	49.0	48.9	47.0	53.0	48.0	29.0
-28.0	56.0	57.0	48.4	44.0	52.0	48.0	34.0
-18.0	60.0	60.0	58.8	54.0	60.0	57.0	53.0
-4.0	70.0	67.0	73.7	72.0	77.0	75.0	64.0
-4.0	65.0	61.0	64.1	62.0	69.0	65.0	60.0
-14.0	70.0	66.0	69.5	66.0	71.0	69.0	85.0
-11.0	65.0	64.0	51.9	50.0	53.0	52.0	55.0
-21.0	63.0	66.0	65.7	62.0	67.0	65.0	49.0
-6.0	57.0	64.0	52.2	52.0	53.0	51.0	49.0
-18.0	60.0	71.0	65.2	61.0	68.0	65.0	56.0
-11.0	67.0	75.0	63.8	62.0	68.0	63.0	60.0
-9.0	45.0	48.0	46.4	46.0	50.0	45.0	47.0
-8.0	60.0	53.0	52.5	48.0	56.0	51.0	70.0
-15.0	55.0	49.0	47.1	46.0	51.0	46.0	65.0
-8.0	86.0	85.0	68.5	67.0	70.0	69.0	81.0
-10.0	57.0	62.0	49.4	48.0	50.0	49.0	30.0
-3.0	46.0	50.0	47.0	42.0	52.0	47.0	58.0
-27.0	65.0	58.0	55.9	51.0	60.0	55.0	39.0
-7.0	79.0	72.0	77.2	74.0	78.0	77.0	95.0
-16.0	57.0	55.0	50.7	50.0	51.0	49.0	34.0
-10.0	72.0	74.0	72.3	70.0	77.0	74.0	91.0
-29.0	83.0	85.0	77.3	77.0	80.0	79.0	77.0
-3.0	77.0	73.0	77.3	77.0	81.0	77.0	93.0
-1.0	52.0	52.0	47.4	44.0	48.0	49.0	39.0
-25.0	64.0	67.0	67.6	64.0	72.0	67.0	62.0
-23.0	49.0	45.0	45.1	45.0	49.0	44.0	35.0
-2.0	52.0	46.0	47.2	46.0	51.0	49.0	41.0
-13.0	62.0	66.0	60.6	60.0	62.0	60.0	57.0
-23.0	81.0	71.0	77.0	75.0	81.0	76.0	86.0
-13.0	65.0	70.0	69.3	66.0	72.0	69.0	79.0
-15.0	55.0	58.0	49.9	46.0	52.0	49.0	53.0
-8.0	72.0	72.0	77.1	76.0	78.0	77.0	65.0
-12.0	74.0	74.0	75.4	74.0	77.0	77.0	71.0
-3.0	63.0	65.0	64.5	63.0	68.0	65.0	49.0
-18.0	68.0	77.0	58.8	55.0	59.0	57.0	39.0
-25.0	60.0	59.0	50.9	49.0	51.0	49.0	35.0
-2.0	44.0	45.0	45.7	41.0	50.0	44.0	61.0
-21.0	51.0	53.0	50.5	49.0	54.0	52.0	46.0
-24.0	57.0	53.0	54.9	54.0	56.0	56.0	72.0
-27.0	85.0	79.0	77.3	73.0	78.0	79.0	79.0
-4.0	51.0	49.0	49.0	44.0	54.0	51.0	44.0
-7.0	66.0	63.0	62.9	62.0	67.0	64.0	78.0
-4.0	63.0	69.0	56.5	54.0	59.0	56.0	45.0
-24.0	51.0	60.0	50.8	47.0	53.0	50.0	46.0
-8.0	63.0	64.0	62.5	60.0	65.0	61.0	73.0
-15.0	75.0	79.0	71.0	66.0	76.0	69.0	64.0
-14.0	49.0	55.0	47.0	43.0	47.0	46.0	58.0
-1.0	68.0	73.0	56.0	54.0	59.0	55.0	41.0
-17.0	62.0	60.0	59.1	57.0	63.0	59.0	62.0
-18.0	71.0	67.0	70.2	67.0	75.0	69.0	77.0
-26.0	41.0	42.0	45.2	45.0	48.0	46.0	58.0
-17.0	57.0	60.0	65.0	62.0	65.0	65.0	55.0
-20.0	55.0	57.0	49.8	47.0	54.0	48.0	30.0
-18.0	35.0	35.0	45.2	44.0	46.0	46.0	36.0
-17.0	71.0	75.0	70.3	66.0	73.0	70.0	84.0
-26.0	59.0	61.0	51.1	48.0	56.0	53.0	65.0
-22.0	53.0	51.0	50.6	46.0	51.0	50.0	59.0
-26.0	69.0	71.0	71.9	67.0	74.0	72.0	70.0
-11.0	71.0	74.0	75.3	74.0	79.0	75.0	71.0
-30.0	48.0	48.0	45.4	44.0	46.0	44.0	42.0
-9.0	68.0	74.0	74.9	70.0	79.0	76.0	60.0
-21.0	70.0	76.0	70.8	68.0	75.0	71.0	57.0
-2.0	54.0	58.0	51.6	47.0	54.0	52.0	37.0
-20.0	53.0	51.0	50.4	48.0	55.0	51.0	43.0
-9.0	67.0	72.0	72.6	68.0	77.0	71.0	78.0
-26.0	67.0	76.0	67.2	64.0	69.0	69.0	74.0
-22.0	52.0	52.0	47.9	47.0	48.0	48.0	60.0
-27.0	52.0	53.0	48.2	48.0	49.0	49.0	53.0
-12.0	67.0	65.0	69.1	65.0	73.0	70.0	83.0
-20.0	61.0	58.0	58.1	58.0	59.0	58.0	43.0
-13.0	74.0	77.0	75.6	74.0	78.0	76.0	56.0
-7.0	58.0	61.0	52.9	51.0	56.0	51.0	35.0
-1.0	66.0	67.0	65.3	64.0	70.0	64.0	54.0
-22.0	55.0	54.0	49.3	46.0	54.0	49.0	58.0
-1.0	71.0	79.0	67.4	65.0	69.0	66.0	58.0
-13.0	81.0	77.0	64.3	63.0	67.0	66.0	67.0
-3.0	75.0	71.0	67.7	64.0	71.0	66.0	55.0
-12.0	59.0	58.0	57.7	54.0	59.0	57.0	61.0
-31.0	64.0	68.0	55.9	55.0	59.0	56.0	56.0
-14.0	43.0	40.0	45.4	45.0	48.0	45.0	49.0
-5.0	75.0	80.0	77.3	75.0	81.0	78.0	71.0
-4.0	87.0	74.0	62.3	59.0	65.0	64.0	61.0
-31.0	48.0	57.0	45.5	42.0	48.0	47.0	57.0
-21.0	48.0	52.0	47.8	43.0	51.0	46.0	57.0
-10.0	74.0	71.0	75.1	71.0	77.0	76.0	95.0
-15.0	54.0	49.0	53.6	49.0	58.0	52.0	70.0
-19.0	77.0	89.0	59.0	59.0	63.0	59.0	61.0
-14.0	66.0	60.0	60.2	56.0	64.0	60.0	78.0
-15.0	59.0	59.0	58.3	58.0	61.0	60.0	40.0
+0	1
+143.762620712	-0.330941870584
+-88.5787166225	1.08055532812
+-82.8452345578	0.272541389247
+72.4951388149	-0.26868660527800003
+11.805182128	1.0360467096600001
+-63.9354970901	-0.101485840571
+126.32584079600001	-0.35999834017899995
+23.0341392692	0.5185404651359999
+67.6714937696	-0.115688051547
+47.39275848810001	-0.7850965413680001
--- a/test-data/feature_selection_result09	Fri Jul 13 03:56:45 2018 -0400
+++ b/test-data/feature_selection_result09	Sat Aug 04 12:35:35 2018 -0400
@@ -1,262 +1,11 @@
-month	day	temp_2	temp_1	average	forecast_noaa	forecast_acc	forecast_under	friend	week_Fri	week_Mon	week_Sat	week_Sun	week_Tues
-9.0	19.0	68.0	69.0	69.7	65.0	74.0	71.0	88.0	0.0	1.0	0.0	0.0	0.0
-4.0	14.0	60.0	59.0	58.1	57.0	63.0	58.0	66.0	0.0	0.0	0.0	0.0	0.0
-7.0	30.0	85.0	88.0	77.3	75.0	79.0	77.0	70.0	0.0	0.0	1.0	0.0	0.0
-5.0	15.0	82.0	65.0	64.7	63.0	69.0	64.0	58.0	0.0	0.0	0.0	1.0	0.0
-1.0	18.0	54.0	50.0	47.5	44.0	48.0	49.0	58.0	0.0	1.0	0.0	0.0	0.0
-1.0	25.0	48.0	51.0	48.2	45.0	51.0	49.0	63.0	0.0	1.0	0.0	0.0	0.0
-11.0	25.0	49.0	52.0	48.6	45.0	52.0	47.0	41.0	1.0	0.0	0.0	0.0	0.0
-7.0	20.0	73.0	78.0	76.7	75.0	78.0	77.0	66.0	0.0	0.0	0.0	0.0	0.0
-12.0	17.0	39.0	35.0	45.2	43.0	47.0	46.0	38.0	0.0	0.0	1.0	0.0	0.0
-12.0	8.0	42.0	40.0	46.1	45.0	51.0	47.0	36.0	0.0	0.0	0.0	0.0	0.0
-12.0	28.0	42.0	47.0	45.3	41.0	49.0	44.0	58.0	0.0	0.0	0.0	0.0	0.0
-7.0	17.0	76.0	72.0	76.3	76.0	78.0	77.0	88.0	0.0	0.0	0.0	1.0	0.0
-7.0	7.0	69.0	76.0	74.4	73.0	77.0	74.0	72.0	0.0	0.0	0.0	0.0	0.0
-12.0	15.0	40.0	39.0	45.3	45.0	49.0	47.0	46.0	0.0	0.0	0.0	0.0	0.0
-6.0	27.0	71.0	78.0	72.2	70.0	74.0	72.0	84.0	0.0	1.0	0.0	0.0	0.0
-5.0	31.0	64.0	71.0	67.3	63.0	72.0	68.0	85.0	0.0	0.0	0.0	0.0	1.0
-1.0	20.0	54.0	48.0	47.7	44.0	52.0	49.0	61.0	0.0	0.0	0.0	0.0	0.0
-8.0	10.0	73.0	72.0	77.0	77.0	78.0	77.0	68.0	0.0	0.0	0.0	0.0	0.0
-3.0	23.0	56.0	57.0	54.7	50.0	58.0	55.0	70.0	0.0	0.0	0.0	0.0	0.0
-12.0	24.0	45.0	40.0	45.1	44.0	47.0	46.0	39.0	0.0	0.0	1.0	0.0	0.0
-1.0	19.0	50.0	54.0	47.6	47.0	49.0	48.0	53.0	0.0	0.0	0.0	0.0	1.0
-11.0	6.0	65.0	58.0	53.2	52.0	57.0	55.0	71.0	0.0	0.0	0.0	1.0	0.0
-4.0	17.0	60.0	68.0	58.6	58.0	62.0	59.0	54.0	0.0	0.0	0.0	1.0	0.0
-10.0	29.0	60.0	65.0	55.3	55.0	59.0	55.0	65.0	0.0	0.0	1.0	0.0	0.0
-2.0	1.0	48.0	47.0	48.8	46.0	49.0	49.0	51.0	0.0	1.0	0.0	0.0	0.0
-12.0	12.0	44.0	44.0	45.6	43.0	50.0	45.0	42.0	0.0	1.0	0.0	0.0	0.0
-5.0	30.0	64.0	64.0	67.1	64.0	70.0	66.0	69.0	0.0	1.0	0.0	0.0	0.0
-10.0	23.0	59.0	62.0	57.1	57.0	58.0	59.0	67.0	0.0	0.0	0.0	1.0	0.0
-9.0	30.0	68.0	66.0	65.7	64.0	67.0	65.0	74.0	1.0	0.0	0.0	0.0	0.0
-9.0	12.0	77.0	70.0	71.8	67.0	73.0	73.0	90.0	0.0	1.0	0.0	0.0	0.0
-11.0	2.0	59.0	57.0	54.2	54.0	58.0	55.0	70.0	0.0	0.0	0.0	0.0	0.0
-11.0	17.0	55.0	50.0	50.5	46.0	51.0	50.0	57.0	0.0	0.0	0.0	0.0	0.0
-3.0	3.0	58.0	55.0	51.8	49.0	54.0	50.0	71.0	0.0	0.0	0.0	0.0	0.0
-11.0	21.0	57.0	55.0	49.5	46.0	51.0	49.0	67.0	0.0	1.0	0.0	0.0	0.0
-12.0	27.0	42.0	42.0	45.2	41.0	50.0	47.0	47.0	0.0	0.0	0.0	0.0	1.0
-4.0	24.0	64.0	65.0	60.1	57.0	61.0	60.0	41.0	0.0	0.0	0.0	1.0	0.0
-5.0	20.0	64.0	63.0	65.6	63.0	70.0	64.0	73.0	1.0	0.0	0.0	0.0	0.0
-1.0	16.0	49.0	48.0	47.3	45.0	52.0	46.0	28.0	0.0	0.0	1.0	0.0	0.0
-12.0	7.0	40.0	42.0	46.3	44.0	51.0	46.0	62.0	0.0	0.0	0.0	0.0	0.0
-1.0	7.0	44.0	51.0	46.2	45.0	49.0	46.0	38.0	0.0	0.0	0.0	0.0	0.0
-9.0	24.0	67.0	64.0	68.0	65.0	71.0	66.0	64.0	0.0	0.0	1.0	0.0	0.0
-8.0	30.0	79.0	75.0	74.6	74.0	76.0	75.0	63.0	0.0	0.0	0.0	0.0	1.0
-1.0	11.0	50.0	52.0	46.7	42.0	48.0	48.0	39.0	0.0	1.0	0.0	0.0	0.0
-6.0	9.0	85.0	67.0	68.6	66.0	73.0	69.0	80.0	0.0	0.0	0.0	0.0	0.0
-9.0	22.0	67.0	68.0	68.7	65.0	70.0	69.0	56.0	0.0	0.0	0.0	0.0	0.0
-3.0	25.0	53.0	54.0	55.0	53.0	57.0	57.0	42.0	1.0	0.0	0.0	0.0	0.0
-10.0	24.0	62.0	62.0	56.8	52.0	61.0	57.0	70.0	0.0	1.0	0.0	0.0	0.0
-7.0	16.0	77.0	76.0	76.1	76.0	78.0	75.0	61.0	0.0	0.0	1.0	0.0	0.0
-7.0	1.0	74.0	73.0	73.1	71.0	75.0	72.0	93.0	1.0	0.0	0.0	0.0	0.0
-11.0	18.0	50.0	52.0	50.3	50.0	53.0	50.0	35.0	1.0	0.0	0.0	0.0	0.0
-9.0	3.0	75.0	70.0	73.9	71.0	75.0	73.0	68.0	0.0	0.0	1.0	0.0	0.0
-8.0	2.0	73.0	77.0	77.4	75.0	80.0	79.0	62.0	0.0	0.0	0.0	0.0	1.0
-4.0	5.0	69.0	60.0	56.6	52.0	58.0	56.0	72.0	0.0	0.0	0.0	0.0	1.0
-3.0	13.0	55.0	52.0	53.3	50.0	55.0	53.0	54.0	0.0	0.0	0.0	1.0	0.0
-8.0	28.0	81.0	79.0	75.0	71.0	77.0	76.0	85.0	0.0	0.0	0.0	1.0	0.0
-4.0	9.0	77.0	76.0	57.2	53.0	61.0	57.0	74.0	0.0	0.0	1.0	0.0	0.0
-5.0	26.0	66.0	66.0	66.5	64.0	70.0	65.0	85.0	0.0	0.0	0.0	0.0	0.0
-10.0	10.0	68.0	57.0	61.8	58.0	64.0	61.0	62.0	0.0	1.0	0.0	0.0	0.0
-4.0	10.0	76.0	66.0	57.4	57.0	60.0	57.0	60.0	0.0	0.0	0.0	1.0	0.0
-10.0	19.0	60.0	61.0	58.4	58.0	60.0	57.0	41.0	0.0	0.0	0.0	0.0	0.0
-3.0	12.0	56.0	55.0	53.1	52.0	58.0	53.0	65.0	0.0	0.0	1.0	0.0	0.0
-1.0	24.0	57.0	48.0	48.1	46.0	50.0	48.0	54.0	0.0	0.0	0.0	1.0	0.0
-2.0	7.0	53.0	49.0	49.2	46.0	51.0	48.0	63.0	0.0	0.0	0.0	1.0	0.0
-5.0	27.0	66.0	65.0	66.7	64.0	67.0	68.0	73.0	1.0	0.0	0.0	0.0	0.0
-5.0	5.0	74.0	60.0	62.5	58.0	66.0	62.0	56.0	0.0	0.0	0.0	0.0	0.0
-3.0	11.0	55.0	56.0	53.0	53.0	53.0	51.0	36.0	1.0	0.0	0.0	0.0	0.0
-10.0	22.0	62.0	59.0	57.4	56.0	59.0	58.0	44.0	0.0	0.0	1.0	0.0	0.0
-12.0	11.0	36.0	44.0	45.7	41.0	46.0	47.0	35.0	0.0	0.0	0.0	1.0	0.0
-5.0	8.0	77.0	82.0	63.2	62.0	65.0	63.0	83.0	0.0	0.0	0.0	1.0	0.0
-5.0	29.0	64.0	64.0	67.0	65.0	71.0	65.0	76.0	0.0	0.0	0.0	1.0	0.0
-12.0	13.0	44.0	43.0	45.5	41.0	47.0	46.0	46.0	0.0	0.0	0.0	0.0	1.0
-3.0	30.0	56.0	64.0	55.7	51.0	57.0	56.0	57.0	0.0	0.0	0.0	0.0	0.0
-11.0	8.0	61.0	63.0	52.7	49.0	57.0	52.0	49.0	0.0	0.0	0.0	0.0	1.0
-6.0	20.0	65.0	70.0	70.6	67.0	71.0	70.0	79.0	0.0	1.0	0.0	0.0	0.0
-11.0	9.0	63.0	71.0	52.4	48.0	56.0	52.0	42.0	0.0	0.0	0.0	0.0	0.0
-7.0	3.0	76.0	76.0	73.5	69.0	76.0	75.0	85.0	0.0	0.0	0.0	1.0	0.0
-10.0	9.0	64.0	68.0	62.1	58.0	65.0	63.0	55.0	0.0	0.0	0.0	1.0	0.0
-12.0	16.0	39.0	39.0	45.3	44.0	49.0	44.0	39.0	1.0	0.0	0.0	0.0	0.0
-9.0	16.0	79.0	71.0	70.7	70.0	74.0	71.0	52.0	1.0	0.0	0.0	0.0	0.0
-6.0	25.0	68.0	69.0	71.7	68.0	73.0	73.0	89.0	0.0	0.0	1.0	0.0	0.0
-9.0	13.0	70.0	74.0	71.5	71.0	75.0	70.0	82.0	0.0	0.0	0.0	0.0	1.0
-5.0	12.0	75.0	81.0	64.1	62.0	67.0	63.0	81.0	0.0	0.0	0.0	0.0	0.0
-2.0	8.0	49.0	51.0	49.3	49.0	52.0	50.0	34.0	0.0	1.0	0.0	0.0	0.0
-1.0	12.0	52.0	45.0	46.8	44.0	50.0	45.0	61.0	0.0	0.0	0.0	0.0	1.0
-8.0	13.0	80.0	87.0	76.8	73.0	79.0	78.0	73.0	0.0	0.0	1.0	0.0	0.0
-7.0	4.0	76.0	71.0	73.8	71.0	76.0	73.0	86.0	0.0	1.0	0.0	0.0	0.0
-4.0	25.0	65.0	55.0	60.3	56.0	64.0	61.0	77.0	0.0	1.0	0.0	0.0	0.0
-8.0	12.0	76.0	80.0	76.9	72.0	79.0	77.0	81.0	1.0	0.0	0.0	0.0	0.0
-9.0	21.0	71.0	67.0	69.0	65.0	70.0	70.0	76.0	0.0	0.0	0.0	0.0	0.0
-4.0	30.0	64.0	61.0	61.4	60.0	65.0	62.0	78.0	0.0	0.0	1.0	0.0	0.0
-12.0	5.0	49.0	46.0	46.6	43.0	50.0	45.0	65.0	0.0	1.0	0.0	0.0	0.0
-12.0	19.0	35.0	39.0	45.1	42.0	46.0	45.0	51.0	0.0	1.0	0.0	0.0	0.0
-9.0	23.0	68.0	67.0	68.3	67.0	69.0	67.0	61.0	1.0	0.0	0.0	0.0	0.0
-11.0	29.0	48.0	52.0	47.8	43.0	48.0	47.0	50.0	0.0	0.0	0.0	0.0	1.0
-6.0	16.0	60.0	67.0	69.8	68.0	72.0	71.0	87.0	0.0	0.0	0.0	0.0	0.0
-9.0	14.0	74.0	75.0	71.2	67.0	75.0	73.0	77.0	0.0	0.0	0.0	0.0	0.0
-9.0	6.0	68.0	68.0	73.3	73.0	76.0	75.0	79.0	0.0	0.0	0.0	0.0	1.0
-6.0	6.0	81.0	92.0	68.2	65.0	70.0	67.0	71.0	0.0	1.0	0.0	0.0	0.0
-9.0	8.0	68.0	67.0	72.8	69.0	77.0	73.0	56.0	0.0	0.0	0.0	0.0	0.0
-1.0	3.0	45.0	44.0	45.8	43.0	46.0	47.0	56.0	0.0	0.0	0.0	1.0	0.0
-4.0	28.0	60.0	61.0	61.0	56.0	65.0	62.0	73.0	0.0	0.0	0.0	0.0	0.0
-11.0	5.0	65.0	65.0	53.4	49.0	58.0	52.0	41.0	0.0	0.0	1.0	0.0	0.0
-9.0	7.0	68.0	68.0	73.0	72.0	78.0	71.0	70.0	0.0	0.0	0.0	0.0	0.0
-5.0	3.0	77.0	87.0	62.1	62.0	66.0	64.0	69.0	0.0	0.0	0.0	0.0	1.0
-10.0	31.0	65.0	117.0	54.8	51.0	59.0	56.0	62.0	0.0	1.0	0.0	0.0	0.0
-7.0	18.0	72.0	80.0	76.4	75.0	77.0	75.0	66.0	0.0	1.0	0.0	0.0	0.0
-11.0	15.0	55.0	57.0	51.0	47.0	54.0	51.0	46.0	0.0	0.0	0.0	0.0	1.0
-5.0	10.0	63.0	67.0	63.6	61.0	66.0	64.0	68.0	0.0	0.0	0.0	0.0	1.0
-3.0	18.0	53.0	58.0	54.0	51.0	57.0	54.0	56.0	1.0	0.0	0.0	0.0	0.0
-10.0	26.0	61.0	65.0	56.2	53.0	57.0	57.0	41.0	0.0	0.0	0.0	0.0	0.0
-1.0	30.0	56.0	52.0	48.6	45.0	51.0	48.0	47.0	0.0	0.0	1.0	0.0	0.0
-3.0	27.0	57.0	59.0	55.3	52.0	58.0	55.0	39.0	0.0	0.0	0.0	1.0	0.0
-11.0	3.0	57.0	57.0	53.9	53.0	54.0	54.0	35.0	0.0	0.0	0.0	0.0	0.0
-4.0	20.0	89.0	81.0	59.2	56.0	63.0	61.0	66.0	0.0	0.0	0.0	0.0	0.0
-7.0	24.0	71.0	75.0	77.1	76.0	78.0	78.0	75.0	0.0	0.0	0.0	1.0	0.0
-7.0	31.0	88.0	76.0	77.4	76.0	78.0	79.0	95.0	0.0	0.0	0.0	1.0	0.0
-5.0	16.0	65.0	57.0	64.8	61.0	65.0	65.0	53.0	0.0	1.0	0.0	0.0	0.0
-7.0	6.0	68.0	69.0	74.2	72.0	76.0	75.0	86.0	0.0	0.0	0.0	0.0	0.0
-9.0	27.0	76.0	77.0	66.8	66.0	67.0	68.0	64.0	0.0	0.0	0.0	0.0	1.0
-2.0	16.0	58.0	55.0	49.9	47.0	54.0	51.0	55.0	0.0	0.0	0.0	0.0	1.0
-12.0	4.0	50.0	49.0	46.8	45.0	47.0	47.0	53.0	0.0	0.0	0.0	1.0	0.0
-3.0	9.0	53.0	54.0	52.7	48.0	56.0	54.0	57.0	0.0	0.0	0.0	0.0	0.0
-11.0	14.0	59.0	55.0	51.2	49.0	53.0	53.0	42.0	0.0	1.0	0.0	0.0	0.0
-3.0	29.0	51.0	56.0	55.6	53.0	59.0	54.0	45.0	0.0	0.0	0.0	0.0	1.0
-7.0	8.0	76.0	68.0	74.6	72.0	79.0	75.0	77.0	1.0	0.0	0.0	0.0	0.0
-3.0	14.0	52.0	54.0	53.4	49.0	58.0	55.0	44.0	0.0	1.0	0.0	0.0	0.0
-6.0	11.0	65.0	67.0	69.0	69.0	72.0	71.0	87.0	0.0	0.0	1.0	0.0	0.0
-1.0	13.0	45.0	49.0	46.9	45.0	51.0	46.0	33.0	0.0	0.0	0.0	0.0	0.0
-2.0	5.0	49.0	49.0	49.1	47.0	50.0	49.0	45.0	1.0	0.0	0.0	0.0	0.0
-1.0	29.0	57.0	56.0	48.5	48.0	52.0	47.0	49.0	1.0	0.0	0.0	0.0	0.0
-6.0	22.0	76.0	73.0	71.0	66.0	71.0	72.0	78.0	0.0	0.0	0.0	0.0	0.0
-5.0	25.0	65.0	66.0	66.4	65.0	67.0	66.0	60.0	0.0	0.0	0.0	0.0	0.0
-9.0	28.0	77.0	69.0	66.5	66.0	68.0	66.0	62.0	0.0	0.0	0.0	0.0	0.0
-5.0	14.0	77.0	82.0	64.5	64.0	66.0	66.0	65.0	0.0	0.0	1.0	0.0	0.0
-8.0	14.0	87.0	90.0	76.7	75.0	78.0	78.0	65.0	0.0	0.0	0.0	1.0	0.0
-2.0	23.0	51.0	51.0	50.7	49.0	53.0	51.0	43.0	0.0	0.0	0.0	0.0	1.0
-4.0	8.0	68.0	77.0	57.1	57.0	61.0	57.0	41.0	1.0	0.0	0.0	0.0	0.0
-10.0	11.0	57.0	60.0	61.4	58.0	66.0	61.0	58.0	0.0	0.0	0.0	0.0	1.0
-6.0	30.0	79.0	74.0	72.8	71.0	76.0	72.0	87.0	0.0	0.0	0.0	0.0	0.0
-7.0	26.0	80.0	85.0	77.2	73.0	79.0	76.0	74.0	0.0	0.0	0.0	0.0	1.0
-5.0	6.0	60.0	68.0	62.8	61.0	64.0	61.0	64.0	1.0	0.0	0.0	0.0	0.0
-2.0	11.0	62.0	56.0	49.5	46.0	53.0	50.0	37.0	0.0	0.0	0.0	0.0	0.0
-4.0	2.0	73.0	71.0	56.2	55.0	58.0	58.0	45.0	0.0	0.0	1.0	0.0	0.0
-10.0	16.0	60.0	62.0	59.5	57.0	60.0	59.0	40.0	0.0	0.0	0.0	1.0	0.0
-7.0	28.0	79.0	83.0	77.3	76.0	80.0	78.0	76.0	0.0	0.0	0.0	0.0	0.0
-5.0	19.0	71.0	64.0	65.4	62.0	68.0	67.0	56.0	0.0	0.0	0.0	0.0	0.0
-1.0	27.0	54.0	56.0	48.4	45.0	51.0	49.0	54.0	0.0	0.0	0.0	0.0	0.0
-12.0	25.0	40.0	41.0	45.1	42.0	49.0	44.0	31.0	0.0	0.0	0.0	1.0	0.0
-5.0	24.0	66.0	65.0	66.2	66.0	71.0	66.0	67.0	0.0	0.0	0.0	0.0	1.0
-11.0	4.0	57.0	65.0	53.7	49.0	55.0	54.0	38.0	1.0	0.0	0.0	0.0	0.0
-1.0	5.0	41.0	40.0	46.0	46.0	46.0	46.0	41.0	0.0	0.0	0.0	0.0	1.0
-1.0	1.0	45.0	45.0	45.6	43.0	50.0	44.0	29.0	1.0	0.0	0.0	0.0	0.0
-11.0	26.0	52.0	52.0	48.4	48.0	50.0	47.0	58.0	0.0	0.0	1.0	0.0	0.0
-11.0	12.0	64.0	63.0	51.7	50.0	52.0	52.0	63.0	0.0	0.0	1.0	0.0	0.0
-11.0	30.0	52.0	52.0	47.6	47.0	52.0	49.0	44.0	0.0	0.0	0.0	0.0	0.0
-4.0	13.0	58.0	60.0	57.9	55.0	62.0	56.0	77.0	0.0	0.0	0.0	0.0	0.0
-8.0	23.0	84.0	81.0	75.7	73.0	78.0	77.0	89.0	0.0	0.0	0.0	0.0	1.0
-7.0	14.0	77.0	75.0	75.8	74.0	76.0	77.0	77.0	0.0	0.0	0.0	0.0	0.0
-11.0	13.0	63.0	59.0	51.4	48.0	56.0	50.0	64.0	0.0	0.0	0.0	1.0	0.0
-8.0	9.0	72.0	73.0	77.1	77.0	80.0	79.0	94.0	0.0	0.0	0.0	0.0	1.0
-8.0	4.0	73.0	75.0	77.3	73.0	79.0	78.0	66.0	0.0	0.0	0.0	0.0	0.0
-4.0	16.0	59.0	60.0	58.5	56.0	60.0	59.0	59.0	0.0	0.0	1.0	0.0	0.0
-6.0	23.0	73.0	75.0	71.3	68.0	72.0	71.0	56.0	0.0	0.0	0.0	0.0	0.0
-4.0	11.0	66.0	59.0	57.6	56.0	60.0	58.0	40.0	0.0	1.0	0.0	0.0	0.0
-2.0	6.0	49.0	53.0	49.1	47.0	53.0	49.0	56.0	0.0	0.0	1.0	0.0	0.0
-8.0	6.0	80.0	79.0	77.2	76.0	81.0	79.0	60.0	0.0	0.0	1.0	0.0	0.0
-3.0	5.0	59.0	57.0	52.1	49.0	53.0	51.0	46.0	0.0	0.0	1.0	0.0	0.0
-6.0	2.0	79.0	75.0	67.6	64.0	71.0	67.0	77.0	0.0	0.0	0.0	0.0	0.0
-9.0	20.0	69.0	71.0	69.4	67.0	73.0	69.0	81.0	0.0	0.0	0.0	0.0	1.0
-2.0	19.0	57.0	53.0	50.2	50.0	52.0	51.0	42.0	1.0	0.0	0.0	0.0	0.0
-2.0	2.0	47.0	46.0	48.8	48.0	50.0	50.0	56.0	0.0	0.0	0.0	0.0	1.0
-7.0	22.0	82.0	81.0	76.9	72.0	77.0	76.0	70.0	1.0	0.0	0.0	0.0	0.0
-11.0	24.0	54.0	49.0	48.9	47.0	53.0	48.0	29.0	0.0	0.0	0.0	0.0	0.0
-1.0	28.0	56.0	57.0	48.4	44.0	52.0	48.0	34.0	0.0	0.0	0.0	0.0	0.0
-10.0	18.0	60.0	60.0	58.8	54.0	60.0	57.0	53.0	0.0	0.0	0.0	0.0	1.0
-9.0	4.0	70.0	67.0	73.7	72.0	77.0	75.0	64.0	0.0	0.0	0.0	1.0	0.0
-10.0	4.0	65.0	61.0	64.1	62.0	69.0	65.0	60.0	0.0	0.0	0.0	0.0	1.0
-6.0	14.0	70.0	66.0	69.5	66.0	71.0	69.0	85.0	0.0	0.0	0.0	0.0	1.0
-11.0	11.0	65.0	64.0	51.9	50.0	53.0	52.0	55.0	1.0	0.0	0.0	0.0	0.0
-5.0	21.0	63.0	66.0	65.7	62.0	67.0	65.0	49.0	0.0	0.0	1.0	0.0	0.0
-3.0	6.0	57.0	64.0	52.2	52.0	53.0	51.0	49.0	0.0	0.0	0.0	1.0	0.0
-5.0	18.0	60.0	71.0	65.2	61.0	68.0	65.0	56.0	0.0	0.0	0.0	0.0	0.0
-5.0	11.0	67.0	75.0	63.8	62.0	68.0	63.0	60.0	0.0	0.0	0.0	0.0	0.0
-1.0	9.0	45.0	48.0	46.4	46.0	50.0	45.0	47.0	0.0	0.0	1.0	0.0	0.0
-3.0	8.0	60.0	53.0	52.5	48.0	56.0	51.0	70.0	0.0	0.0	0.0	0.0	1.0
-1.0	15.0	55.0	49.0	47.1	46.0	51.0	46.0	65.0	1.0	0.0	0.0	0.0	0.0
-6.0	8.0	86.0	85.0	68.5	67.0	70.0	69.0	81.0	0.0	0.0	0.0	0.0	0.0
-2.0	10.0	57.0	62.0	49.4	48.0	50.0	49.0	30.0	0.0	0.0	0.0	0.0	0.0
-12.0	3.0	46.0	50.0	47.0	42.0	52.0	47.0	58.0	0.0	0.0	1.0	0.0	0.0
-10.0	27.0	65.0	58.0	55.9	51.0	60.0	55.0	39.0	0.0	0.0	0.0	0.0	0.0
-8.0	7.0	79.0	72.0	77.2	74.0	78.0	77.0	95.0	0.0	0.0	0.0	1.0	0.0
-11.0	16.0	57.0	55.0	50.7	50.0	51.0	49.0	34.0	0.0	0.0	0.0	0.0	0.0
-9.0	10.0	72.0	74.0	72.3	70.0	77.0	74.0	91.0	0.0	0.0	1.0	0.0	0.0
-7.0	29.0	83.0	85.0	77.3	77.0	80.0	79.0	77.0	1.0	0.0	0.0	0.0	0.0
-8.0	3.0	77.0	73.0	77.3	77.0	81.0	77.0	93.0	0.0	0.0	0.0	0.0	0.0
-12.0	1.0	52.0	52.0	47.4	44.0	48.0	49.0	39.0	0.0	0.0	0.0	0.0	0.0
-9.0	25.0	64.0	67.0	67.6	64.0	72.0	67.0	62.0	0.0	0.0	0.0	1.0	0.0
-12.0	23.0	49.0	45.0	45.1	45.0	49.0	44.0	35.0	1.0	0.0	0.0	0.0	0.0
-12.0	2.0	52.0	46.0	47.2	46.0	51.0	49.0	41.0	1.0	0.0	0.0	0.0	0.0
-10.0	13.0	62.0	66.0	60.6	60.0	62.0	60.0	57.0	0.0	0.0	0.0	0.0	0.0
-7.0	23.0	81.0	71.0	77.0	75.0	81.0	76.0	86.0	0.0	0.0	1.0	0.0	0.0
-6.0	13.0	65.0	70.0	69.3	66.0	72.0	69.0	79.0	0.0	1.0	0.0	0.0	0.0
-2.0	15.0	55.0	58.0	49.9	46.0	52.0	49.0	53.0	0.0	1.0	0.0	0.0	0.0
-8.0	8.0	72.0	72.0	77.1	76.0	78.0	77.0	65.0	0.0	1.0	0.0	0.0	0.0
-7.0	12.0	74.0	74.0	75.4	74.0	77.0	77.0	71.0	0.0	0.0	0.0	0.0	1.0
-10.0	3.0	63.0	65.0	64.5	63.0	68.0	65.0	49.0	0.0	1.0	0.0	0.0	0.0
-4.0	18.0	68.0	77.0	58.8	55.0	59.0	57.0	39.0	0.0	1.0	0.0	0.0	0.0
-2.0	25.0	60.0	59.0	50.9	49.0	51.0	49.0	35.0	0.0	0.0	0.0	0.0	0.0
-1.0	2.0	44.0	45.0	45.7	41.0	50.0	44.0	61.0	0.0	0.0	1.0	0.0	0.0
-2.0	21.0	51.0	53.0	50.5	49.0	54.0	52.0	46.0	0.0	0.0	0.0	1.0	0.0
-3.0	24.0	57.0	53.0	54.9	54.0	56.0	56.0	72.0	0.0	0.0	0.0	0.0	0.0
-7.0	27.0	85.0	79.0	77.3	73.0	78.0	79.0	79.0	0.0	0.0	0.0	0.0	0.0
-2.0	4.0	51.0	49.0	49.0	44.0	54.0	51.0	44.0	0.0	0.0	0.0	0.0	0.0
-10.0	7.0	66.0	63.0	62.9	62.0	67.0	64.0	78.0	1.0	0.0	0.0	0.0	0.0
-4.0	4.0	63.0	69.0	56.5	54.0	59.0	56.0	45.0	0.0	1.0	0.0	0.0	0.0
-2.0	24.0	51.0	60.0	50.8	47.0	53.0	50.0	46.0	0.0	0.0	0.0	0.0	0.0
-10.0	8.0	63.0	64.0	62.5	60.0	65.0	61.0	73.0	0.0	0.0	1.0	0.0	0.0
-9.0	15.0	75.0	79.0	71.0	66.0	76.0	69.0	64.0	0.0	0.0	0.0	0.0	0.0
-1.0	14.0	49.0	55.0	47.0	43.0	47.0	46.0	58.0	0.0	0.0	0.0	0.0	0.0
-4.0	1.0	68.0	73.0	56.0	54.0	59.0	55.0	41.0	1.0	0.0	0.0	0.0	0.0
-10.0	17.0	62.0	60.0	59.1	57.0	63.0	59.0	62.0	0.0	1.0	0.0	0.0	0.0
-6.0	18.0	71.0	67.0	70.2	67.0	75.0	69.0	77.0	0.0	0.0	1.0	0.0	0.0
-12.0	26.0	41.0	42.0	45.2	45.0	48.0	46.0	58.0	0.0	1.0	0.0	0.0	0.0
-5.0	17.0	57.0	60.0	65.0	62.0	65.0	65.0	55.0	0.0	0.0	0.0	0.0	1.0
-11.0	20.0	55.0	57.0	49.8	47.0	54.0	48.0	30.0	0.0	0.0	0.0	1.0	0.0
-12.0	18.0	35.0	35.0	45.2	44.0	46.0	46.0	36.0	0.0	0.0	0.0	1.0	0.0
-9.0	17.0	71.0	75.0	70.3	66.0	73.0	70.0	84.0	0.0	0.0	1.0	0.0	0.0
-2.0	26.0	59.0	61.0	51.1	48.0	56.0	53.0	65.0	1.0	0.0	0.0	0.0	0.0
-2.0	22.0	53.0	51.0	50.6	46.0	51.0	50.0	59.0	0.0	1.0	0.0	0.0	0.0
-6.0	26.0	69.0	71.0	71.9	67.0	74.0	72.0	70.0	0.0	0.0	0.0	1.0	0.0
-7.0	11.0	71.0	74.0	75.3	74.0	79.0	75.0	71.0	0.0	1.0	0.0	0.0	0.0
-12.0	30.0	48.0	48.0	45.4	44.0	46.0	44.0	42.0	1.0	0.0	0.0	0.0	0.0
-7.0	9.0	68.0	74.0	74.9	70.0	79.0	76.0	60.0	0.0	0.0	1.0	0.0	0.0
-6.0	21.0	70.0	76.0	70.8	68.0	75.0	71.0	57.0	0.0	0.0	0.0	0.0	1.0
-3.0	2.0	54.0	58.0	51.6	47.0	54.0	52.0	37.0	0.0	0.0	0.0	0.0	0.0
-2.0	20.0	53.0	51.0	50.4	48.0	55.0	51.0	43.0	0.0	0.0	1.0	0.0	0.0
-9.0	9.0	67.0	72.0	72.6	68.0	77.0	71.0	78.0	1.0	0.0	0.0	0.0	0.0
-9.0	26.0	67.0	76.0	67.2	64.0	69.0	69.0	74.0	0.0	1.0	0.0	0.0	0.0
-1.0	22.0	52.0	52.0	47.9	47.0	48.0	48.0	60.0	1.0	0.0	0.0	0.0	0.0
-11.0	27.0	52.0	53.0	48.2	48.0	49.0	49.0	53.0	0.0	0.0	0.0	1.0	0.0
-6.0	12.0	67.0	65.0	69.1	65.0	73.0	70.0	83.0	0.0	0.0	0.0	1.0	0.0
-10.0	20.0	61.0	58.0	58.1	58.0	59.0	58.0	43.0	0.0	0.0	0.0	0.0	0.0
-7.0	13.0	74.0	77.0	75.6	74.0	78.0	76.0	56.0	0.0	0.0	0.0	0.0	0.0
-11.0	7.0	58.0	61.0	52.9	51.0	56.0	51.0	35.0	0.0	1.0	0.0	0.0	0.0
-10.0	1.0	66.0	67.0	65.3	64.0	70.0	64.0	54.0	0.0	0.0	1.0	0.0	0.0
-11.0	22.0	55.0	54.0	49.3	46.0	54.0	49.0	58.0	0.0	0.0	0.0	0.0	1.0
-6.0	1.0	71.0	79.0	67.4	65.0	69.0	66.0	58.0	0.0	0.0	0.0	0.0	0.0
-5.0	13.0	81.0	77.0	64.3	63.0	67.0	66.0	67.0	1.0	0.0	0.0	0.0	0.0
-6.0	3.0	75.0	71.0	67.7	64.0	71.0	66.0	55.0	1.0	0.0	0.0	0.0	0.0
-4.0	12.0	59.0	58.0	57.7	54.0	59.0	57.0	61.0	0.0	0.0	0.0	0.0	1.0
-3.0	31.0	64.0	68.0	55.9	55.0	59.0	56.0	56.0	0.0	0.0	0.0	0.0	0.0
-12.0	14.0	43.0	40.0	45.4	45.0	48.0	45.0	49.0	0.0	0.0	0.0	0.0	0.0
-8.0	5.0	75.0	80.0	77.3	75.0	81.0	78.0	71.0	1.0	0.0	0.0	0.0	0.0
-5.0	4.0	87.0	74.0	62.3	59.0	65.0	64.0	61.0	0.0	0.0	0.0	0.0	0.0
-12.0	31.0	48.0	57.0	45.5	42.0	48.0	47.0	57.0	0.0	0.0	1.0	0.0	0.0
-1.0	21.0	48.0	52.0	47.8	43.0	51.0	46.0	57.0	0.0	0.0	0.0	0.0	0.0
-7.0	10.0	74.0	71.0	75.1	71.0	77.0	76.0	95.0	0.0	0.0	0.0	1.0	0.0
-3.0	15.0	54.0	49.0	53.6	49.0	58.0	52.0	70.0	0.0	0.0	0.0	0.0	1.0
-4.0	19.0	77.0	89.0	59.0	59.0	63.0	59.0	61.0	0.0	0.0	0.0	0.0	1.0
-10.0	14.0	66.0	60.0	60.2	56.0	64.0	60.0	78.0	1.0	0.0	0.0	0.0	0.0
-4.0	15.0	59.0	59.0	58.3	58.0	61.0	60.0	40.0	1.0	0.0	0.0	0.0	0.0
+0
+143.762620712
+-88.5787166225
+-82.8452345578
+72.4951388149
+11.805182128
+-63.9354970901
+126.32584079600001
+23.0341392692
+67.6714937696
+47.39275848810001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/feature_selection_result12	Sat Aug 04 12:35:35 2018 -0400
@@ -0,0 +1,11 @@
+0	1
+143.762620712	-1.1796457192799998
+-88.5787166225	-2.5710918402200003
+-82.8452345578	-0.168636324107
+72.4951388149	0.991068834926
+11.805182128	-0.7096855607860001
+-63.9354970901	0.9841122108220001
+126.32584079600001	0.35353444883900004
+23.0341392692	1.03188231893
+67.6714937696	-0.8214378651719999
+47.39275848810001	-0.0942409319417
Binary file test-data/pipeline01 has changed
Binary file test-data/pipeline02 has changed
Binary file test-data/pipeline03 has changed
Binary file test-data/pipeline04 has changed
Binary file test-data/pipeline05 has changed
Binary file test-data/pipeline06 has changed
Binary file test-data/pipeline07 has changed
Binary file test-data/pipeline08 has changed
Binary file test-data/searchCV01 has changed