diff --git a/Tutorial/1_Estimators_Overview.ipynb b/Tutorial/1_Estimators_Overview.ipynb index 40651551..7da6be38 100644 --- a/Tutorial/1_Estimators_Overview.ipynb +++ b/Tutorial/1_Estimators_Overview.ipynb @@ -58,22 +58,69 @@ "name": "stderr", "output_type": "stream", "text": [ - "Generation: : 0it [00:00, ?it/s]/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/population.py:204: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '[0.9987673084964015, 0.9847336570645737, 0.9905041856662168, 0.9993763441765191, 0.9907964721472181, 0.9972029119373254, 0.998357673885215, 0.9990613894532178, 0.9694329382784964, 0.997532770251522, 0.9975246891516141, 0.9904661635101079, 0.5, 'INVALID', 0.9948797140575193, 0.5, 0.9849666992163886, 0.9824262822238007, 0.9985479308254266, 0.9972915114620106, 0.9694329382784964, 'INVALID', 0.9324417946451, 0.9901685392720255, 0.9978183481741485, 0.9973644125394717, 0.9905750509316356, 0.9819493383116706, 0.9699621501061083, 0.6072655018077077, 0.9694329382784964, 0.9838996235635504, 0.982122385127114, 0.9901266523287818, 0.9301526525124777, 0.9720743554304064, 0.994576960473181, 0.5, 0.5, 0.9948330115435265, 0.9990358447113457, 0.9945434259359371, 0.9375978779782033, 0.9993887714241577, 0.997164111114518, 'INVALID', 'INVALID', 0.9493406027781374, 0.9767172486252121, 0.9974530907820837]' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n", - " self.evaluated_individuals.loc[key,column_names] = data\n", - "Generation: : 1it [00:14, 14.92s/it]/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/population.py:381: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value 'ind_mutate' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n", - " self.evaluated_individuals.at[new_child.unique_id(),\"Variation_Function\"] = var_op\n", - "Generation: : 4it [01:19, 19.94s/it]\n", - "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/feature_selection/_univariate_selection.py:112: UserWarning: Features [ 0 32 39] are constant.\n", - " warnings.warn(\"Features %s are constant.\" % constant_features_idx, UserWarning)\n", - "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/feature_selection/_univariate_selection.py:113: RuntimeWarning: invalid value encountered in divide\n", - " f = msb / msw\n" + "Generation: 0%| | 0/1 [00:00 \n", + " Pipeline has none of the following attributes: predict_proba. \n", + " Traceback (most recent call last):\n", + " File \"/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/utils/eval_utils.py\", line 53, in objective_nan_wrapper\n", + " value = func_timeout.func_timeout(timeout, objective_function, args=[individual], kwargs=objective_kwargs)\n", + " File \"/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/func_timeout/dafunc.py\", line 108, in func_timeout\n", + " raise_exception(exception)\n", + " File \"/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/func_timeout/py3_raise.py\", line 7, in raise_exception\n", + " raise exception[0] from None\n", + " File \"/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/tpot_estimator/estimator.py\", line 620, in objective_function\n", + " return objective_function_generator(\n", + " File \"/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/tpot_estimator/estimator_utils.py\", line 55, in objective_function_generator\n", + " cv_obj_scores = cross_val_score_objective(sklearn.base.clone(pipeline),x,y,scorers=scorers, cv=cv , fold=step)\n", + " File \"/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/tpot_estimator/cross_val_utils.py\", line 31, in cross_val_score_objective\n", + " this_fold_scores = [sklearn.metrics.get_scorer(scorer)(this_fold_pipeline, X_test, y_test) for scorer in scorers]\n", + " File \"/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/tpot_estimator/cross_val_utils.py\", line 31, in \n", + " this_fold_scores = [sklearn.metrics.get_scorer(scorer)(this_fold_pipeline, X_test, y_test) for scorer in scorers]\n", + " File \"/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/metrics/_scorer.py\", line 253, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " File \"/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/metrics/_scorer.py\", line 344, in _score\n", + " response_method = _check_response_method(estimator, self._response_method)\n", + " File \"/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/utils/validation.py\", line 2106, in _check_response_method\n", + " raise AttributeError(\n", + "AttributeError: Pipeline has none of the following attributes: predict_proba.\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Generation: 100%|██████████| 1/1 [00:07<00:00, 7.82s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generation: 1\n", + "Best roc_auc_score score: 0.9938492063492064\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "2024-06-28 17:22:24,449 - distributed.scheduler - ERROR - Removing worker 'tcp://127.0.0.1:33053' caused the cluster to lose scattered data, which can't be recovered: {'ndarray-71df36028cf839ff98696c18d6668a27', 'ndarray-809a54d2fd885201030a189763e7bd92'} (stimulus_id='handle-worker-cleanup-1719620544.4491522')\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0\n" ] } ], @@ -83,11 +130,11 @@ "import sklearn.datasets\n", "\n", "scorer = sklearn.metrics.get_scorer('roc_auc_ovo')\n", - "X, y = sklearn.datasets.load_digits(return_X_y=True)\n", + "X, y = sklearn.datasets.load_iris(return_X_y=True)\n", "X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, train_size=0.75, test_size=0.25)\n", "\n", "\n", - "est = tpot2.TPOTClassifier(n_jobs=4, max_time_seconds=60, verbose=2)\n", + "est = tpot2.TPOTClassifier(n_jobs=40, max_time_seconds=30, verbose=5, generations=1, population_size=5)\n", "est.fit(X_train, y_train)\n", "\n", "\n", @@ -96,25 +143,665 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(steps=[('robustscaler',\n",
+       "                 RobustScaler(quantile_range=(0.16675428907107737,\n",
+       "                                              0.7012433303146526))),\n",
+       "                ('passthrough', Passthrough()),\n",
+       "                ('featureunion-1',\n",
+       "                 FeatureUnion(transformer_list=[('skiptransformer',\n",
+       "                                                 SkipTransformer()),\n",
+       "                                                ('passthrough',\n",
+       "                                                 Passthrough())])),\n",
+       "                ('featureunion-2',\n",
+       "                 FeatureUnion(transformer_list=[('skiptransformer',\n",
+       "                                                 SkipTransformer()),\n",
+       "                                                ('passthrough',\n",
+       "                                                 Passthrough())])),\n",
+       "                ('bernoullinb',\n",
+       "                 BernoulliNB(alpha=0.7637690262115946, fit_prior=False))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "Pipeline(steps=[('robustscaler',\n", + " RobustScaler(quantile_range=(0.16675428907107737,\n", + " 0.7012433303146526))),\n", + " ('passthrough', Passthrough()),\n", + " ('featureunion-1',\n", + " FeatureUnion(transformer_list=[('skiptransformer',\n", + " SkipTransformer()),\n", + " ('passthrough',\n", + " Passthrough())])),\n", + " ('featureunion-2',\n", + " FeatureUnion(transformer_list=[('skiptransformer',\n", + " SkipTransformer()),\n", + " ('passthrough',\n", + " Passthrough())])),\n", + " ('bernoullinb',\n", + " BernoulliNB(alpha=0.7637690262115946, fit_prior=False))])" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "est._evolver_instance.population.evaluated_individuals.iloc[0]['Individual'].export_pipeline()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Generation: : 1it [00:03, 3.46s/it]/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/population.py:381: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value 'ind_mutate' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n", - " self.evaluated_individuals.at[new_child.unique_id(),\"Variation_Function\"] = var_op\n", - "/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/population.py:204: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '['INVALID', -6039.425686838566, -3697.10004861336, -3609.502376363637, -5283.160282257095, -3081.9675902170966, -3159.936813075531, -6.206059150347736e+26, -2983.0962978018993, -3310.997549085264, -3255.911452949286, -3437.783411085481, -6124.753602783256, -2983.0962978018993, 'INVALID', -2951.7123134502217, -3172.715957996382, -3203.3174204236266, -3172.204242312273, -3132.3227284760787, -2904.2526718694835, 'INVALID', 'INVALID', -3065.7604709862753, -2887.332924732963, -3746.3702654907283, -4323.858875859902, -3277.5596662104786, -3687.211654454998, -3801.6275361827234, -3635.7122609143, -3657.0684867411182, -6050.448478793622, -3272.2301971831594, 'INVALID', 'INVALID', -3507.5157340117594, -3291.107812406151, -3673.8549030697295, 'INVALID', -3455.0876361736764, 'INVALID', -3201.783121939595, -2912.050142543978, -3808.6567781967847, 'INVALID', 'INVALID', -2895.0114530615692, -2947.503341616811, -3662.3274712695893]' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n", - " self.evaluated_individuals.loc[key,column_names] = data\n", - "Generation: : 9it [00:32, 3.63s/it]\n" + "Generation: : 1it [00:35, 35.93s/it]\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/covariance/_empirical_covariance.py:102: UserWarning: Only one sample available. You may want to reshape your data array\n", + " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "-3453.3557493847698\n" + "-5421.324324324324\n" ] } ], @@ -128,7 +815,7 @@ "X, y = sklearn.datasets.load_diabetes(return_X_y=True)\n", "X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, train_size=0.75, test_size=0.25)\n", "\n", - "est = tpot2.tpot_estimator.templates.TPOTRegressor(n_jobs=4, max_time_seconds=30, verbose=2)\n", + "est = tpot2.tpot_estimator.templates.TPOTRegressor(n_jobs=4, max_time_seconds=30, verbose=2, cv=5)\n", "est.fit(X_train, y_train)\n", "\n", "print(scorer(est, X_test, y_test))" @@ -145,9 +832,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Generation: : 1it [01:05, 65.90s/it]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.9994639357871052\n" + ] + } + ], "source": [ "#my_analysis.py\n", "\n", @@ -253,9 +955,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Evaluations: : 77it [00:30, 2.54it/s]\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0\n" + ] + } + ], "source": [ "import tpot2\n", "import sklearn\n", @@ -290,9 +1009,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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IyYmBq6urgZMR0RERI2FO3aPIDk5GS+99JJg1rNnT+zevRsSicTgeQ4ePIiEhATs2rVL5xonJyfExMTgnXfegbOzswHTERERUWNjsWugoqIiBAQEoLCwUDtzdHTEyZMnDf4p0v379yMhIQF79uzRucbZ2RlTpkzBpEmT4OTkZMB0REREZCg8im2giRMnCkodACxbtsxgpU6j0WDfvn1ISEjAb7/9pnOdq6srpk2bhrfeegsODg4GyUZERETi4I5dA2zbtg2vvfaaYPbiiy8iOTm50Y9gNRoN/ve//yEhIQEpKSk617m5ueHdd9/F+PHjYWdn16iZiIiIyDiw2D2kgoIC+Pv7o7i4WDtzdnZGVlZWo14mRKPR4KeffkJCQgIOHz6sc52npydmzJiBMWPGwNbWttHyEBERkfHhUexD0Gg0GDdunKDUAcDKlSsbrdRpNBokJycjMTERqampOtf5+Phg5syZGDVqFKytrRslCxERERk3Frt/oFarUVNTAxsbG2zevBnJycmCX3/llVcwePDgRnne7du3IzExEenp6TrXtWzZErNmzcKIESNgZWWl9xxERERkOngUex87d+7EG2+8gaqqKrz66qv44YcfUF5erv11Nzc3ZGZmokWLFnp7TpVKhW+++QaJiYnIysrSue7xxx/HnDlzMHToUFhYWOjt+YmIiMh0sdjdR9u2bfHnn3/q/PXt27ejf//+enkupVKJbdu2Yd68eThz5ozOdX5+foiNjcWQIUMgl3PDlYiIiP7WJIqdSqVCcXExCgsLUVhYiOsFBaipqoJapYJUJoOVjQ1aeHjA3d0d7u7ucHFxwc2bN+97Ad/XX38dX3zxxSNnq6urwxdffIGkpCRkZ2frXNehQwfExcVh8ODBRnH/WSIiIrE15PXd3F9DzXrLp6SkBOnp6TiZlobqykpolErYV1XBqbgYNkolpBoN1BIJ6uRynHVxQaqNDSRyOazt7NDCywtOTk4oKyur97GPHTuGvLw8eHt7NyhbbW0tPv/8c8yfPx8XLlzQuS4gIABxcXEYOHCg2f9lJCIiehCP8voeGBaG4OBgs737klnu2OXn5+PggQPIyc6GhUIB30uX4VlcDKfKSlioVDq/rk4mQ5mdHa66uOCClyeKVSpk5+TgwMGDKCgouGf9m2++ic8///yhstXU1GDDhg1YsGABLl26pHNd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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fitted_pipeline = est.fitted_pipeline_ # access best pipeline directly\n", "fitted_pipeline.plot()" @@ -300,9 +1030,240 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
roc_auc_scoreParentsVariation_FunctionIndividualSubmitted TimestampCompleted TimestampEval ErrorPareto_FrontInstance
00.914484NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('DecisionTreeClassifier_1', 'SelectFwe_1'), ...
10.966071NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('DecisionTreeClassifier_1', 'SelectPercentil...
20.735952NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('DecisionTreeClassifier_1', 'PassKBinsDiscre...
30.991534NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'SelectPercentile_1'...
40.997540NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'VarianceThreshold_1...
..............................
720.992910(19, 19)ind_mutate<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('KNeighborsClassifier_1', 'ColumnOneHotEncod...
730.983743(8, 8)ind_mutate<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('KNeighborsClassifier_1', 'VarianceThreshold...
740.997540(63, 63)ind_mutate<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'VarianceThreshold_1...
750.978929(63, 63)ind_mutate<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'SelectFwe_1'), ('Lo...
760.997540(65, 42)ind_crossover<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'VarianceThreshold_1...
\n", + "

77 rows × 9 columns

\n", + "
" + ], + "text/plain": [ + " roc_auc_score Parents Variation_Function \\\n", + "0 0.914484 NaN NaN \n", + "1 0.966071 NaN NaN \n", + "2 0.735952 NaN NaN \n", + "3 0.991534 NaN NaN \n", + "4 0.997540 NaN NaN \n", + ".. ... ... ... \n", + "72 0.992910 (19, 19) ind_mutate \n", + "73 0.983743 (8, 8) ind_mutate \n", + "74 0.997540 (63, 63) ind_mutate \n", + "75 0.978929 (63, 63) ind_mutate \n", + "76 0.997540 (65, 42) ind_crossover \n", + "\n", + " Individual Submitted Timestamp \\\n", + "0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fitted_pipeline = est.fitted_pipeline_ # access best pipeline directly\n", "fitted_pipeline.plot() #plot the best pipeline" @@ -356,9 +1345,265 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
roc_auc_scorecomplexity_scorerParentsVariation_FunctionIndividualSubmitted TimestampCompleted TimestampEval ErrorPareto_FrontInstance
00.97674616.0NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'FastICA_1'), ('Fast...
1NaNNaNNaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09INVALIDNaN[('DecisionTreeClassifier_1', 'FeatureAgglomer...
20.99555615.0NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'VarianceThreshold_1')]
30.9856154.0NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09None1.0[('KNeighborsClassifier_1', 'SelectPercentile_...
40.65190590.0NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('KNeighborsClassifier_1', 'SelectFwe_1'), ('...
.................................
82NaNNaN(23, 23)ind_mutate<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09INVALIDNaN[('KNeighborsClassifier_1', 'SelectPercentile_...
830.9667064.0(66, 26)ind_mutate , ind_mutate , ind_crossover<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('KNeighborsClassifier_1', 'SelectPercentile_...
84NaNNaN(44, 44)ind_mutate<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09INVALIDNaN[('DecisionTreeClassifier_1', 'SelectPercentil...
850.998730308.8(63, 63)ind_mutate<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'SelectPercentile_2'...
860.998889301.0(24, 24)ind_mutate<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09NoneNaN[('LogisticRegression_1', 'QuantileTransformer...
\n", + "

87 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " roc_auc_score complexity_scorer Parents \\\n", + "0 0.976746 16.0 NaN \n", + "1 NaN NaN NaN \n", + "2 0.995556 15.0 NaN \n", + "3 0.985615 4.0 NaN \n", + "4 0.651905 90.0 NaN \n", + ".. ... ... ... \n", + "82 NaN NaN (23, 23) \n", + "83 0.966706 4.0 (66, 26) \n", + "84 NaN NaN (44, 44) \n", + "85 0.998730 308.8 (63, 63) \n", + "86 0.998889 301.0 (24, 24) \n", + "\n", + " Variation_Function \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + ".. ... \n", + "82 ind_mutate \n", + "83 ind_mutate , ind_mutate , ind_crossover \n", + "84 ind_mutate \n", + "85 ind_mutate \n", + "86 ind_mutate \n", + "\n", + " Individual Submitted Timestamp \\\n", + "0 \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
roc_auc_scorecomplexity_scorerParentsVariation_FunctionIndividualSubmitted TimestampCompleted TimestampEval ErrorPareto_FrontInstance
30.9856154.0NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09None1.0[('KNeighborsClassifier_1', 'SelectPercentile_...
140.9975408.0NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09None1.0[('KNeighborsClassifier_1', 'SelectPercentile_...
241.00000023.0NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09None1.0[('LogisticRegression_1', 'SelectFwe_1'), ('Lo...
250.99761917.4NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09None1.0[('LogisticRegression_1', 'FastICA_1'), ('Logi...
420.9905566.0NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09None1.0[('LogisticRegression_1', 'VarianceThreshold_1...
440.9933137.4NaNNaN<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09None1.0[('LogisticRegression_1', 'SelectPercentile_1'...
630.9656751.0(9, 42)ind_crossover<tpot2.search_spaces.pipelines.graph.GraphPipe...1.719621e+091.719621e+09None1.0[('KNeighborsClassifier_1', 'VarianceThreshold...
\n", + "" + ], + "text/plain": [ + " roc_auc_score complexity_scorer Parents Variation_Function \\\n", + "3 0.985615 4.0 NaN NaN \n", + "14 0.997540 8.0 NaN NaN \n", + "24 1.000000 23.0 NaN NaN \n", + "25 0.997619 17.4 NaN NaN \n", + "42 0.990556 6.0 NaN NaN \n", + "44 0.993313 7.4 NaN NaN \n", + "63 0.965675 1.0 (9, 42) ind_crossover \n", + "\n", + " Individual Submitted Timestamp \\\n", + "3 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "pareto_front = est.pareto_front\n", "\n", @@ -405,9 +1833,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Generation: 100%|██████████| 5/5 [01:12<00:00, 14.45s/it]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.9971509971509972\n" + ] + } + ], "source": [ "import tpot2\n", "import sklearn\n", diff --git a/Tutorial/2_Search_Spaces.ipynb b/Tutorial/2_Search_Spaces.ipynb index 8feae90b..84a869af 100644 --- a/Tutorial/2_Search_Spaces.ipynb +++ b/Tutorial/2_Search_Spaces.ipynb @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -31,7 +31,7 @@ "output_type": "stream", "text": [ "sampled hyperparameters\n", - "{'metric': 'euclidean', 'n_jobs': 1, 'n_neighbors': 1, 'p': 3, 'weights': 'distance'}\n" + "{'metric': 'euclidean', 'n_jobs': 1, 'n_neighbors': 10, 'p': 2, 'weights': 'distance'}\n" ] } ], @@ -110,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -156,9 +156,9 @@ "output_type": "stream", "text": [ "sampled hyperparameters\n", - "{'metric': 'minkowski', 'n_jobs': 1, 'n_neighbors': 9, 'p': 3, 'weights': 'uniform'}\n", + "{'metric': 'minkowski', 'n_jobs': 1, 'n_neighbors': 6, 'p': 3, 'weights': 'distance'}\n", "mutated hyperparameters\n", - "{'metric': 'minkowski', 'n_jobs': 1, 'n_neighbors': 5, 'p': 1, 'weights': 'distance'}\n" + "{'metric': 'euclidean', 'n_jobs': 1, 'n_neighbors': 6, 'p': 1, 'weights': 'uniform'}\n" ] } ], @@ -181,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -189,14 +189,14 @@ "output_type": "stream", "text": [ "original hyperparameters for individual 1\n", - "{'metric': 'euclidean', 'n_jobs': 1, 'n_neighbors': 3, 'p': 3, 'weights': 'uniform'}\n", + "{'metric': 'euclidean', 'n_jobs': 1, 'n_neighbors': 7, 'p': 2, 'weights': 'uniform'}\n", "original hyperparameters for individual 2\n", - "{'metric': 'minkowski', 'n_jobs': 1, 'n_neighbors': 2, 'p': 3, 'weights': 'distance'}\n", + "{'metric': 'minkowski', 'n_jobs': 1, 'n_neighbors': 1, 'p': 2, 'weights': 'uniform'}\n", "\n", "post crossover hyperparameters for individual 1\n", - "{'metric': 'euclidean', 'n_jobs': 1, 'n_neighbors': 2, 'p': 3, 'weights': 'uniform'}\n", + "{'metric': 'euclidean', 'n_jobs': 1, 'n_neighbors': 7, 'p': 2, 'weights': 'uniform'}\n", "post crossover hyperparameters for individual 2\n", - "{'metric': 'minkowski', 'n_jobs': 1, 'n_neighbors': 2, 'p': 3, 'weights': 'distance'}\n" + "{'metric': 'minkowski', 'n_jobs': 1, 'n_neighbors': 1, 'p': 2, 'weights': 'uniform'}\n" ] } ], @@ -229,13 +229,13 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=2, p=3)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=7)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=2, p=3)" + "KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=7)" ] }, - "execution_count": 5, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -663,13 +663,13 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
KNeighborsClassifier(n_neighbors=10)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
KNeighborsClassifier(n_neighbors=10)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "KNeighborsClassifier(n_neighbors=10)" ] }, - "execution_count": 6, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -1121,16 +1121,16 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 7, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -1193,7 +1193,7 @@ ")\n", "\n", "classifier_node = tpot2.search_spaces.pipelines.ChoicePipeline(\n", - " choice_list = [\n", + " search_spaces=[\n", " knn_node,\n", " lr_node,\n", " dt_node,\n", @@ -1202,7 +1202,7 @@ "\n", "\n", "tpot2.search_spaces.pipelines.ChoicePipeline(\n", - " choice_list = [\n", + " search_spaces = [\n", " tpot2.search_spaces.nodes.EstimatorNode(\n", " method = KNeighborsClassifier,\n", " space = knn_configspace,\n", @@ -1228,7 +1228,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -1241,7 +1241,7 @@ { "data": { "text/html": [ - "
KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=2, p=1)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
LogisticRegression(C=174.83656421187536, class_weight='balanced', dual=True,\n",
+       "                   max_iter=1000, n_jobs=1, penalty='l1', solver='saga')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=2, p=1)" + "LogisticRegression(C=174.83656421187536, class_weight='balanced', dual=True,\n", + " max_iter=1000, n_jobs=1, penalty='l1', solver='saga')" ] }, - "execution_count": 8, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -1665,7 +1668,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -1678,7 +1681,7 @@ { "data": { "text/html": [ - "
KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=9, p=3)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=3,\n",
+       "                     weights='distance')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=9, p=3)" + "KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=3,\n", + " weights='distance')" ] }, - "execution_count": 9, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -2119,7 +2125,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -2132,7 +2138,7 @@ { "data": { "text/html": [ - "
KNeighborsClassifier(n_jobs=1, n_neighbors=2)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
LogisticRegression(C=0.09214193108798754, l1_ratio=0.6425731475282531,\n",
+       "                   max_iter=1000, n_jobs=1, penalty='elasticnet',\n",
+       "                   solver='saga')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "KNeighborsClassifier(n_jobs=1, n_neighbors=2)" + "LogisticRegression(C=0.09214193108798754, l1_ratio=0.6425731475282531,\n", + " max_iter=1000, n_jobs=1, penalty='elasticnet',\n", + " solver='saga')" ] }, - "execution_count": 10, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -2557,7 +2569,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -2570,7 +2582,7 @@ { "data": { "text/html": [ - "
DecisionTreeClassifier(class_weight='balanced', max_depth=1, min_samples_leaf=8,\n",
+       "                       min_samples_split=9)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "DecisionTreeClassifier(class_weight='balanced', max_depth=1, min_samples_leaf=8,\n", + " min_samples_split=9)" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(\"sampled pipeline 2\")\n", + "classifier_choice.generate().export_pipeline()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sampled pipeline 1\n" + ] + }, + { + "data": { + "text/html": [ + "
LinearDiscriminantAnalysis(shrinkage=0.6166902161314916, solver='eigen')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "LinearDiscriminantAnalysis(shrinkage=0.6166902161314916, solver='eigen')" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#search space for all classifiers\n", + "classifier_choice = tpot2.config.get_search_space(\"classifiers\")\n", + "\n", + "print(\"sampled pipeline 1\")\n", + "classifier_choice.generate().export_pipeline()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sampled pipeline 2\n" + ] + }, + { + "data": { + "text/html": [ + "
KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=1, p=1,\n",
-       "                     weights='distance')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
LogisticRegression(C=0.13397662986842293, max_iter=1000, n_jobs=1, penalty='l1',\n",
+       "                   solver='saga')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "KNeighborsClassifier(metric='euclidean', n_jobs=1, n_neighbors=1, p=1,\n", - " weights='distance')" + "LogisticRegression(C=0.13397662986842293, max_iter=1000, n_jobs=1, penalty='l1',\n", + " solver='saga')" ] }, - "execution_count": 11, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -2993,22 +3881,31 @@ "classifier_choice.generate().export_pipeline()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sequential Example\n", + "\n", + "SequentialPipelines are of fixed length and sample from a predefined distribution for each step. Here is an example of the form Selector-Transformer-Classifer" + ] + }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "sampled pipeline 1\n" + "sampled pipeline\n" ] }, { "data": { "text/html": [ - "
MLPClassifier(alpha=0.0013923360596347684, hidden_layer_sizes=[443],\n",
-       "              learning_rate=0.08711410737884528, n_iter_no_change=32)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
Pipeline(steps=[('selectpercentile',\n",
+       "                 SelectPercentile(percentile=67.96672316882378)),\n",
+       "                ('columnonehotencoder', ColumnOneHotEncoder()),\n",
+       "                ('logisticregression',\n",
+       "                 LogisticRegression(C=5839.203596349427,\n",
+       "                                    class_weight='balanced', max_iter=1000,\n",
+       "                                    n_jobs=1, solver='saga'))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "MLPClassifier(alpha=0.0013923360596347684, hidden_layer_sizes=[443],\n", - " learning_rate=0.08711410737884528, n_iter_no_change=32)" + "Pipeline(steps=[('selectpercentile',\n", + " SelectPercentile(percentile=67.96672316882378)),\n", + " ('columnonehotencoder', ColumnOneHotEncoder()),\n", + " ('logisticregression',\n", + " LogisticRegression(C=5839.203596349427,\n", + " class_weight='balanced', max_iter=1000,\n", + " n_jobs=1, solver='saga'))])" ] }, - "execution_count": 12, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#search space for all classifiers\n", - "classifier_choice = tpot2.config.get_search_space(\"classifiers\")\n", + "stc_pipeline = tpot2.search_spaces.pipelines.SequentialPipeline([\n", + " tpot2.config.get_search_space(\"selectors\"), \n", + " tpot2.config.get_search_space(\"transformers\"),\n", + " tpot2.config.get_search_space(\"classifiers\"),\n", + " \n", + "])\n", "\n", - "print(\"sampled pipeline 1\")\n", - "classifier_choice.generate().export_pipeline()" + "print(\"sampled pipeline\")\n", + "stc_pipeline.generate().export_pipeline()" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "sampled pipeline 2\n" + "sampled pipeline\n" ] }, { "data": { "text/html": [ - "
KNeighborsClassifier(n_jobs=1, n_neighbors=1, p=3, weights='distance')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
Pipeline(steps=[('selectpercentile',\n",
+       "                 SelectPercentile(percentile=64.13487865074181)),\n",
+       "                ('rbfsampler',\n",
+       "                 RBFSampler(gamma=0.34856830184683274, n_components=74)),\n",
+       "                ('gaussiannb', GaussianNB())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "KNeighborsClassifier(n_jobs=1, n_neighbors=1, p=3, weights='distance')" + "Pipeline(steps=[('selectpercentile',\n", + " SelectPercentile(percentile=64.13487865074181)),\n", + " ('rbfsampler',\n", + " RBFSampler(gamma=0.34856830184683274, n_components=74)),\n", + " ('gaussiannb', GaussianNB())])" ] }, - "execution_count": 13, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "print(\"sampled pipeline 2\")\n", - "classifier_choice.generate().export_pipeline()" + "print(\"sampled pipeline\")\n", + "stc_pipeline.generate().export_pipeline()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# Sequential Example\n", + "# Optimize Search Space with TPOTEstimator\n", "\n", - "SequentialPipelines are of fixed length and sample from a predefined distribution for each step. Here is an example of the form Selector-Transformer-Classifer" + "Once you have constructed a search space, you can use TPOTEstimator to optimize a pipeline within that space." ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 31, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "sampled pipeline\n" + "Generation: 100%|██████████| 5/5 [00:17<00:00, 3.52s/it]\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/decomposition/_fastica.py:595: UserWarning: n_components is too large: it will be set to 10\n", + " warnings.warn(\n" ] }, { "data": { "text/html": [ - "
Pipeline(steps=[('selectpercentile',\n",
-       "                 SelectPercentile(percentile=88.46562641339226)),\n",
-       "                ('columnonehotencoder', ColumnOneHotEncoder()),\n",
-       "                ('lineardiscriminantanalysis',\n",
-       "                 LinearDiscriminantAnalysis(shrinkage=0.40980175929055784,\n",
-       "                                            solver='eigen'))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
TPOTEstimator(classification=True, generations=5, max_eval_time_seconds=300,\n",
+       "              population_size=10, scorers=['roc_auc'], scorers_weights=[1],\n",
+       "              search_space=<tpot2.search_spaces.pipelines.graph.GraphPipeline object at 0x716246e21cf0>,\n",
+       "              verbose=2)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "Pipeline(steps=[('selectpercentile',\n", - " SelectPercentile(percentile=88.46562641339226)),\n", - " ('columnonehotencoder', ColumnOneHotEncoder()),\n", - " ('lineardiscriminantanalysis',\n", - " LinearDiscriminantAnalysis(shrinkage=0.40980175929055784,\n", - " solver='eigen'))])" + "TPOTEstimator(classification=True, generations=5, max_eval_time_seconds=300,\n", + " population_size=10, scorers=['roc_auc'], scorers_weights=[1],\n", + " search_space=,\n", + " verbose=2)" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import tpot2\n", + "import numpy as np\n", + "import sklearn\n", + "import sklearn.datasets\n", + "\n", + "# create dummy dataset\n", + "X, y = sklearn.datasets.make_classification(n_samples=200, n_features=10, n_classes=2)\n", + "\n", + "# train test split\n", + "X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, test_size=0.5)\n", + "\n", + "\n", + "\n", + "graph_search_space = tpot2.search_spaces.pipelines.GraphPipeline(\n", + " root_search_space= tpot2.config.get_search_space([\"KNeighborsClassifier\", \"LogisticRegression\", \"DecisionTreeClassifier\"]),\n", + " leaf_search_space = tpot2.config.get_search_space(\"selectors\"), \n", + " inner_search_space = tpot2.config.get_search_space([\"transformers\"]),\n", + " max_size = 10,\n", + ")\n", + "\n", + "est = tpot2.TPOTEstimator(\n", + " scorers = [\"roc_auc\"],\n", + " scorers_weights = [1],\n", + " classification = True,\n", + " cv = 5,\n", + " search_space = graph_search_space,\n", + " population_size= 10,\n", + " generations = 5,\n", + " max_eval_time_seconds = 60*5,\n", + " verbose = 2,\n", + ")\n", + "\n", + "est.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "auroc score 0.9551820728291317\n" + ] + } + ], + "source": [ + "# score the model\n", + "\n", + "auroc_scorer = sklearn.metrics.get_scorer(\"roc_auc\")\n", + "auroc_score = auroc_scorer(est, X_test, y_test)\n", + "\n", + "print(\"auroc score\", auroc_score)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC+oklEQVR4nOzdd1zW5f748dc92IgyFBEEFy5AFNzgyoapWZZmWYojpXEav2yeTiePnb6tU6d9us1d5iizLFunnOBCQBAc4IgpKNzsfY/fH9p9/IiiKHAz3s/Ho8cj3vf1+VzvDxa+ua7PdV0qs9lsRgghhBBCtHhqaycghBBCCCEahhR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthBR2QgghhBCthNbaCQghREMyGo3o9Xpyc3PJzc3lXE4OVRUVmIxG1BoNdg4OdOzcGU9PTzw9PXFzc0Oj0Vg7bSGEaBAqs9lstnYSQghxowoKCkhISOBwXByVZWWYDQacKypor9djYzCgNpsxqVTUaLUUublR6uCASqvF3smJoJAQgoODcXV1tfZjCCHEDZHCTgjRomVnZ7MnKorTqanYlJfjm56Bl15P+7IybIzGK15Xo9FQ5OTEGTc30n27UuPoSHd/f8JGjcLLy6sJn0AIIRqOFHZCiBbJYDAQHR1NTHQ0znl59EpLxycvD43JVO97GdVqMj08OOHnS6mHB0PCwggLC0OrlbdVhBAtixR2QogWJycnh61btlCQmUXf1FT8s7JQN8CPMpNKRaq3N8f8/XHz8WbilCl07ty5ATIWQoimIYWdEKJFSUtLY/OGDThmnyH06FFcyssbvI9iR0di+/WjvEsXps64Fz8/vwbvQwghGoMUdkKIFiMtLY1N69bhnpbO0CNH0F7HtOu1MqjV7A/oj97Xl3vuv1+K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", + "text/plain": [ + "
" ] }, - "execution_count": 14, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "stc_pipeline = tpot2.search_spaces.pipelines.SequentialPipeline([\n", - " tpot2.config.get_search_space(\"selectors\"), \n", - " tpot2.config.get_search_space(\"transformers\"),\n", - " tpot2.config.get_search_space(\"classifiers\"),\n", - " \n", - "])\n", - "\n", - "print(\"sampled pipeline\")\n", - "stc_pipeline.generate().export_pipeline()" + "#plot the best pipeline\n", + "est.fitted_pipeline_.plot()" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 34, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sampled pipeline\n" - ] - }, { "data": { "text/html": [ - "
Pipeline(steps=[('selectpercentile',\n",
-       "                 SelectPercentile(percentile=90.16586548452537)),\n",
-       "                ('binarizer', Binarizer(threshold=0.5722157107778224)),\n",
-       "                ('randomforestclassifier',\n",
-       "                 RandomForestClassifier(bootstrap=False, max_features=76,\n",
-       "                                        min_samples_leaf=4,\n",
-       "                                        min_samples_split=14,\n",
-       "                                        n_estimators=128))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + "
TPOTEstimator(classification=True, generations=5, max_eval_time_seconds=300,\n",
+       "              population_size=10, scorers=['roc_auc'], scorers_weights=[1],\n",
+       "              search_space=<tpot2.search_spaces.pipelines.graph.GraphPipeline object at 0x716246e21cf0>,\n",
+       "              verbose=2)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ - "Pipeline(steps=[('selectpercentile',\n", - " SelectPercentile(percentile=90.16586548452537)),\n", - " ('binarizer', Binarizer(threshold=0.5722157107778224)),\n", - " ('randomforestclassifier',\n", - " RandomForestClassifier(bootstrap=False, max_features=76,\n", - " min_samples_leaf=4,\n", - " min_samples_split=14,\n", - " n_estimators=128))])" + "TPOTEstimator(classification=True, generations=5, max_eval_time_seconds=300,\n", + " population_size=10, scorers=['roc_auc'], scorers_weights=[1],\n", + " search_space=,\n", + " verbose=2)" ] }, - "execution_count": 15, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "print(\"sampled pipeline\")\n", - "stc_pipeline.generate().export_pipeline()" + "est" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# Optimize Search Space with TPOTEstimator\n", - "\n", - "Once you have constructed a search space, you can use TPOTEstimator to optimize a pipeline within that space." + "# Combined Search Space Example" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Generation: 100%|██████████| 5/5 [00:07<00:00, 1.55s/it]\n", - "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/preprocessing/_data.py:2762: UserWarning: n_quantiles (1063) is greater than the total number of samples (1000). n_quantiles is set to n_samples.\n", - " warnings.warn(\n", - "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/preprocessing/_data.py:2762: UserWarning: n_quantiles (1063) is greater than the total number of samples (1000). n_quantiles is set to n_samples.\n", - " warnings.warn(\n" + "Generation: 100%|██████████| 5/5 [00:33<00:00, 6.70s/it]\n" ] }, { "data": { "text/html": [ - "
TPOTEstimator(classification=True, generations=5, max_eval_time_seconds=300,\n",
+       "
TPOTEstimator(classification=True, generations=5, max_eval_time_seconds=300,\n",
        "              population_size=10, scorers=['roc_auc'], scorers_weights=[1],\n",
-       "              search_space=<tpot2.search_spaces.pipelines.graph.GraphPipeline object at 0x78615f7c3e80>,\n",
-       "              verbose=2)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
FeatureSetSelector(name='group_one', sel_subset=['a', 'b', 'c'])
[('DecisionTreeClassifier_1', 'RBFSampler_1'), ('DecisionTreeClassifier_1', 'QuantileTransformer_1'), ('DecisionTreeClassifier_1', 'ColumnOneHotEncoder_1'), ('ColumnOneHotEncoder_1', 'ZeroCount_1'), ('QuantileTransformer_1', 'ColumnOneHotEncoder_1'), ('QuantileTransformer_1', 'PowerTransformer_2'), ('RBFSampler_1', 'QuantileTransformer_2'), ('PowerTransformer_1', 'Binarizer_1'), ('Binarizer_1', 'QuantileTransformer_2'), ('ZeroCount_1', 'PowerTransformer_1'), ('PowerTransformer_2', 'ZeroCount_1')]
" ], "text/plain": [ "Pipeline(steps=[('featuresetselector',\n", " FeatureSetSelector(name='group_one',\n", " sel_subset=['a', 'b', 'c'])),\n", " ('graphpipeline',\n", - " GraphPipeline(graph=))])" + " GraphPipeline(graph=))])" ] }, "execution_count": 4, @@ -815,18 +819,24 @@ "name": "stderr", "output_type": "stream", "text": [ - "Generation: 0%| | 0/5 [00:00" ] @@ -903,18 +913,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "Generation: 0%| | 0/5 [00:00" ] @@ -96,20 +90,17 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "LogisticRegression_1 : LogisticRegression(C=0.28751652817028706, class_weight='balanced',\n", - " max_iter=1000, n_jobs=1, solver='liblinear')\n", - "FeatureSetSelector_1 : FeatureSetSelector(name='93', sel_subset=[93])\n", - "FeatureSetSelector_2 : FeatureSetSelector(name='25', sel_subset=[25])\n", - "LETransformer_1 : LETransformer()\n", - "LTTransformer_1 : LTTransformer()\n", - "MinTransformer_1 : MinTransformer()\n" + "LogisticRegression_1 : LogisticRegression(C=1.7363936958422204, class_weight='balanced', max_iter=1000,\n", + " n_jobs=1, solver='saga')\n", + "AddTransformer_1 : AddTransformer()\n", + "FeatureSetSelector_1 : FeatureSetSelector(name='84', sel_subset=[84])\n" ] } ], @@ -121,12 +112,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { - "image/png": "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AAAA18MzSAAAACYEJAAAABMCEgAAgAkBCQAAwISABAAAYEJAAgAAMCEgAQAAmBCQAAAATAhIAFzCf//7X1ksFu3evdvZpdh88cUX6tevn3x8fBQZGemUGjp06KAlS5Y45b2BxoyABKBaHn30UVksFqWmptq1r1u3ThaLxUlVOVdycrKaNm2q3NzcCj+keQ2fG+CaCEgAqs3Hx0eLFi3SuXPnnF1Krbl8+bLDxx45ckT9+/dXSEiIWrVqVWW/xvi5AY0dAQlAtcXHxyswMFApKSlV9pk3b16F201LlixRhw4dbK8fffRRDR8+XM8++6wCAgLUvHlzLViwQN9//71mzZqlli1bqn379lq1alWF8b/44gvFxcXJx8dHPXr00NatW+3279+/X/fff79uvfVWBQQE6JFHHtGZM2ds+++8805NnTpVM2bMUOvWrTVo0KBK52G1WrVgwQK1b99e3t7eioyMVGZmpm2/xWJRTk6OFixYIIvFonnz5t3Q5yZJa9euVffu3eXt7a0OHTrohRdesNtfVFSkIUOGqEmTJurYsaNef/31CmMUFxdr0qRJatOmjXx9fXX33Xdrz549tv179uzRXXfdpWbNmsnX11dRUVHauXPndesCbkYEJADV5u7urmeffVZ//vOfdfLkyRsa64MPPtCpU6f00Ucf6cUXX1RycrJ+8YtfqEWLFvr000/1+OOPa8qUKRXeZ9asWZo5c6Y+//xzxcbGasiQIfrmm28kXQ0Hd999t3r16qWdO3cqMzNThYWFGjVqlN0Yq1evlpeXl7Zt26YVK1ZUWt8f//hHvfDCC3r++ee1d+9eDRo0SEOHDtXhw4clSfn5+erevbtmzpyp/Px8/c///E+Vc63O55aTk6NRo0bp4Ycf1r59+zRv3jzNmTNH6enptj6PPvqoTpw4oQ8//FD/+Mc/9Je//EVFRUV24/zyl79UUVGR3nvvPeXk5Kh379665557dPbsWUnSmDFj1L59e3322WfKyclRUlKSPD09q6wduGkZAFAN48ePN4YNG2YYhmH069fPeOyxxwzDMIy3337b+PE/JcnJyUZERITdsS+99JIREhJiN1ZISIhRXl5uawsNDTV+/vOf215///33RtOmTY2///3vhmEYxtGjRw1JRmpqqq3PlStXjPbt2xuLFi0yDMMwFi5caNx33312733ixAlDkpGbm2sYhmEMHDjQ6NWr10/Ot23btsYf/vAHu7bo6GjjySeftL2OiIgwkpOTrztOdT+3X/3qV8a9995rd+ysWbOM8PBwwzAMIzc315BkZGdn2/YfOnTIkGS89NJLhmEYxscff2z4+voaFy9etBunU6dOxsqVKw3DMIxmzZoZ6enpPzF7AFxBAlBjixYt0urVq3Xo0CGHx+jevbvc3H74JyggIEA9e/a0vXZ3d1erVq0qXCGJjY21/beHh4f69Oljq2PPnj368MMPdeutt9q2sLAwSVefF7omKirqurWVlpbq1KlTuuOOO+za77jjjhua8/U+t0OHDlX6focPH1Z5ebkOHTokDw8Pu9rDwsLUvHlz2+s9e/aorKxMrVq1svsMjh49apt/YmKiJk2apPj4eKWmptp9LgB+QEACUGMDBgzQoEGDNHv27Ar73NzcZBiGXduVK1cq9DPf1rFYLJW2Wa3WatdVVlamIUOGaPfu3Xbb4cOHNWDAAFu/pk2bVnvM2nS9z602lJWVKSgoqML8c3NzNWvWLElXnxE7cOCAHnzwQX3wwQcKDw/X22+/XSf1AK7Mw9kFAHBNqampioyMVGhoqF17mzZtVFBQIMMwbF9jr821i/7zn//Yws7333+vnJwcTZ06VZLUu3dvrV27Vh06dJCHh+P/vPn6+qpt27batm2bBg4caGvftm2b+vbte0P1V/W5devWTdu2bbNr27Ztm7p27Sp3d3eFhYXZ5hsdHS1Jys3NVXFxsa1/7969VVBQIA8PD7uH4s26du2qrl276umnn9bo0aO1atUqjRgx4obmBTQ2XEEC4JCePXtqzJgx+tOf/mTXfuedd+r06dN67rnndOTIES1btkzvvfderb3vsmXL9Pbbb+uLL77QU089pXPnzumxxx6TJD311FM6e/asRo8erc8++0xHjhzR+++/rwkTJqi8vLxG7zNr1iwtWrRIGRkZys3NVVJSknbv3q3f/OY3N1R/VZ/bzJkzlZWVpYULF+rLL7/U6tWrtXTpUtvD36GhoRo8eLCmTJmiTz/9VDk5OZo0aZKaNGliGyM+Pl6xsbEaPny4Nm3apP/+97/avn27fv/732vnzp367rvvNHXqVG3ZskXHjh3Ttm3b9Nlnn6lbt243NCegMSIgAXDYggULKtwC69atm/7yl79o2bJlioiIUHZ29nW/4VVTqampSk1NVUREhD755BO98847at26tSTZrvqUl5frvvvuU8+ePTVjxgw1b97c7nmn6pg+fboSExM1c+ZM9ezZU5mZmXrnnXfUpUuXG55DZZ9b79699eabb+qNN95Qjx49NHfuXC1YsECPPvqorc+qVavUtm1bDRw4UCNHjtSvf/1r+fv72/ZbLBa9++67GjBggCZMmKCuXbvq4Ycf1rFjxxQQECB3d3d98803GjdunLp27apRo0bp/vvv1/z58294TkBjYzHMDwsAAADc5LiCBAAAYEJAAgAAMCEgAQAAmBCQAAAATAhIAAAAJgQkAAAAEwISAACACQEJAADAhIAEAABgQkACAAAwISABAACY/H+JDqDXLwtdTgAAAABJRU5ErkJggg==", + "image/png": "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NXHiRD355JOlzjNjxgxNnz5dX331lYKDgxUeHq4ff/xR0i8Bon///urevbu+/PJLJSUl6fTp0xo6dKjDMd566y3Vq1dPu3bt0ooVK8qs75VXXtFLL72kF198Uf/9738VGhqqBx98UN99950k6dSpU+rYsaOmT5+uU6dO6ZlnnrnqtZZn3lJTUzV06FD96U9/0oEDBzRv3jxFR0frzTfftPcZO3asMjMz9emnn2rjxo1avny5cnJyHI7zxz/+UTk5Ofr444+VmpqqHj16aMCAATp79qwkaeTIkWrRooVSUlKUmpqqqKgo1a1b96q1A79ZBgBUkDFjxhgPPfSQYRiG0bt3b+Oxxx4zDMMwNm3aZPzf/9zExMQYXbt2dRj78ssvG61atXI4VqtWrYzi4mJ7W7t27Yy77rrL/r6oqMioX7++8Y9//MMwDMM4duyYIcmIi4uz97l8+bLRokUL4/nnnzcMwzAWLlxoDBw40OHcmZmZhiTjyJEjhmEYxj333GN07979utfbrFkzY9GiRQ5td955p/HUU0/Z33ft2tWIiYm55nHKO28jRowwfv/73zuMnTFjhhEQEGAYhmEcOXLEkGTs27fP/vmhQ4cMScbLL79sGIZh/Oc//zE8PT2NixcvOhyndevWxsqVKw3DMAwPDw/jzTffvM7VA2AlCkCleP755/XWW2/p0KFDpo/RsWNHubj873+mfH191blzZ/t7q9WqRo0alVppCQ4Otv/fderUUWBgoL2O/fv369NPP9Wtt95qf7Vv317SL/uXrujZs+c1a7PZbMrKylLfvn0d2vv27XtT13yteTt06FCZ5/vuu+9UXFysQ4cOqU6dOg61t2/fXrfddpv9/f79+3XhwgU1atTIYQ6OHTtmv/7IyEiNHz9eISEhiouLc5gXAP+LEAWgUtx9990KDQ3VzJkzS33m4uIiwzAc2i5fvlyq369vIVksljLbSkpKyl3XhQsXFB4ervT0dIfXd999p7vvvtver379+uU+ZkW61rxVhAsXLqhp06alrv/IkSOaMWOGpF/2rH399dcKCwvT9u3bFRAQoE2bNlVKPUBNVsfZBQCoveLi4tStWze1a9fOod3b21vZ2dkyDMP+J/wV+WynL774wh6IioqKlJqaqkmTJkmSevTooffee0/+/v6qU8f8fwI9PT3VrFkz7dq1S/fcc4+9fdeuXerVq9dN1X+1eevQoYN27drl0LZr1y61bdtWVqtV7du3t1/vnXfeKUk6cuSIzp07Z+/fo0cPZWdnq06dOg4b+X+tbdu2atu2raZNm6bhw4drzZo1evjhh2/quoDahpUoAJWmc+fOGjlypP761786tN977706c+aMXnjhBX3//fdatmyZPv744wo777Jly7Rp0yYdPnxYERER+umnn/TYY49JkiIiInT27FkNHz5cKSkp+v777/Wvf/1L48aNU3Fx8Q2dZ8aMGXr++eeVmJioI0eOKCoqSunp6ZoyZcpN1X+1eZs+fbqSk5O1cOFCffvtt3rrrbe0dOlS+4b1du3aadCgQXryySe1d+9epaamavz48XJ3d7cfIyQkRMHBwRoyZIg++eQTHT9+XLt379bs2bP15Zdf6ueff9akSZO0Y8cO/fDDD9q1a5dSUlLUoUOHm7omoDYiRAGoVAsWLCh1u61Dhw5avny5li1bpq5du2rfvn3X/Mu1GxUXF6e4uDh17dpVn3/+uTZv3qzGjRtLkn31qLi4WAMHDlTnzp01depU3XbbbQ77r8rj6aefVmRkpKZPn67OnTsrKSlJmzdvVps2bW76Gsqatx49euidd97Rhg0b1KlTJ82dO1cLFizQ2LFj7X3WrFmjZs2a6Z577tEjjzyiCRMmyMfHx/65xWLR1q1bdffdd2vcuHFq27at/vSnP+mHH36Qr6+vrFarfvzxR40ePVpt27bV0KFDdf/992v+/Pk3fU1AbWMxfr0xAQAAANfFShQAAIAJhCgAAAATCFEAAAAmEKIAAABMIEQBAACYQIgCAAAwgRAFAABgAiEKAADABEIUAACACYQoAAAAEwhRAAAAJvw/WnYg5rhg4zYAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -156,38 +147,26 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/distributed/node.py:182: UserWarning: Port 8787 is already in use.\n", - "Perhaps you already have a cluster running?\n", - "Hosting the HTTP server on port 37681 instead\n", - " warnings.warn(\n", - "/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/population.py:204: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '['INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID']' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n", - " self.evaluated_individuals.loc[key,column_names] = data\n", - "/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/population.py:204: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '['INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID', 'INVALID']' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n", - " self.evaluated_individuals.loc[key,column_names] = data\n", - "/home/ribeirop/common/Projects/TPOT_Dev/tpot2/tpot2/population.py:381: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value 'ind_crossover' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.\n", - " self.evaluated_individuals.at[new_child.unique_id(),\"Variation_Function\"] = var_op\n", - "Generation: 100%|██████████| 20/20 [00:05<00:00, 3.52it/s]\n", - "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/linear_model/_stochastic_gradient.py:1575: ConvergenceWarning: Maximum number of iteration reached before convergence. Consider increasing max_iter to improve the fit.\n", - " warnings.warn(\n" + "Generation: 100%|██████████| 20/20 [00:09<00:00, 2.09it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "-6120.015400135764\n" + "-4348.811587281301\n" ] }, { "data": { - "image/png": "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oN/85jfuk7gLvfLmH//4hz766CPdc8898vvGCw8sFose7T9AO8+c0eGGBo3qHq63T56U46v73F9fL4fLpZSwMH341XvibKmuVvV5PtQ3Izxcb5WWuv/561fbHmts1NDQUP2sX6wGBQfrxNmzqva3qX9goKZ2765rgoN1tLlZcZGROshz4wAAuGSHjh5VbUuLJKnKbtdpu13HmptV8tXMz+KnErkUExCglLCu2lZTrZKvXuFaZ7e7X+1qtVjcPeBwQ4OOfdUvXC6X9jfUf+/tvzYqvLv+Vl6mRodDToufKqurVVNToxtvvFFvvvmmmpqaJMn9atmuXbuqtrZWkjRixAitW7dOVVVVampq0t///neNHj263f7uvq1dT+zq6ur0X//1Xzpz5owkKS0tTQ899JDmzJmjn//857riiivUs2dPhYaG6tlnn3Xf7q233tLatWvV0NCgIUOG6F//+pd69eqlgKAgOb/x6tUgq1U/7dNXy0tK9Osrr9SJs2f1o7xcOSX17NJFb8Qn6MfRMXp8316Nz81RUmhXRXXposBznKzN7Rer3xw+pAm5ObK7XIoPDdXCq4bozdISbaupkVVSYteuSgkL09ITJ5R16gtZJfXy89PokBAdHThQ6771cuiPPvpIxcXF2r17t1544YXz/j3t2rVLkyZNUnV1tYKCgjRo0CB9+umnrfibBwDg0vTr10/HjxvfLmTdunV6+umn1dLSIovFot///vcaM2aM5syZo+3bt6t///6y2WyaPXu2xo8fr6eeekoffvihMjIy9Kc//UlLlizR66+/rn79+ikiIkK33HKL7r33Xg0ZMkQ7duxQaGioJOmxn/9ci/72NwWePasufn76XVyc5HTp+cOHVGd3SBYpPiRU90bHKNBq1W+ujNNDe/eoxemUxWLRUwOvUL/AQE3qFaXbc3M0vFs33dW7t547dEh1X237Lub2XxsTHqGDDQ26K3+n6vbsUeiWzfrJffdp/PjxysnJUWpqqvz9/TVz5kz993//t+bMmaOxY8dq8ODBysrK0jPPPKMxY8a4XzyRmpqqo0ePXtTP4aqrrtKpU6fU0tKid999V1u3blXfr55SdjHa9cUTbW3dunXa9/HHumnL1ou+jd3lktPlUhc/P+XX1urXhw7q78kpbZqruaVZH11zjf65Z4/7bVsCAgJ08uRJhYeHt+ljAQDgay7n+t5R/nXdtbrq5ps1btw4s6NclHZ/jl1bioqKUk5QkFqsVvlf5LtANzgcyty1S3aXS/5+Fj076Mo2z2UJDJKjRw/NnTtXMTExOnXqlB5//HFKHQAAF+Fyru8docVqVV1QkOE9aT2d1xU7i82mmpAQRX613v0+YTabVqe07Qndt9WEhMhis2n06NGaPHnyeb/u448/1rx58wyzjIwMvfzyy+2aDwAAT3Y51/eO8PX1va2L3enTp79zAhgQEKBt27a1+r69qthFREQoMCREJyMiPOoHf7LHl7nO9bLnb7r55pt18803d1AqAAC8g7df3y9Vjx49Wv0pH+fjVe/PYbValZiaqmOx/eTwkLcWcfj5qbhfPw1LSzvnx4UBAIAL4/redjzjb+8SJCUlqSU4WCciI82OIkk6Hhkpe3Bwu7/hIAAAvozre9vwumIXHh6ugXFxOtg/1vDWJ2ZwWiw61D9WAwcP5oUSAAC0Atf3tuF1xU6SMkaPVl1kpA706WNqjv19+qguMlIZo0aZmgMAAF/A9b31vLLYRUdHa3hGhvbGxelMB3w8x7nUBAdr3+A4jRg1StHR0aZkAADAl3B9bz2vLHbSl28TEt63j3KGDpW9g59oaffzU87VQxXRp4/S09M79LEBAPBlXN9bx2uLnc1m02133KGGmBhti7+6w/bxTotF2+KvVmN0jMbfcYdsNq96xxgAADwa1/fW8dpiJ0m9e/fWpGl3qTI2VlsS4tu92dv9/LQlIV6VsbGaNO0u9e7du10fDwCAzojr++Xzqs+KPZ/i4mKtXvVXBZeWKm3PHoU1NLT5Y9QEByvn6qFqjI7RpGl3qX///m3+GAAA4D+4vl86nyh2klRWVqY1WVmqOlGiIQcOKK6kRH5t8K05LRbt79NH+wbHKaJPH42/4w6vbvIAAHgTru+XxmeKnSTZ7XZt2rRJ2Zs2KbSiQoOKj6lfRYWsTucl35fDz0/HIyN1qH+s6iIjNWLUKKWnp3vtzh0AAG/F9f3i+VSx+1ppaak2b9qkI/v3y9bQoP7Hjyv6dKW61dfL3+E47+1arFbVhIToZI8IFffrJ3twsAYOHqwML33JMwAAvoTr+/fzyWL3taqqKhUUFKggJ0dn6+vlstsV2tiosMoqdbHb5edyymnxU7PNpjMR4aoLCpLFZlNgSIiGpaVp2LBhXveO0wAA+Dqu7+fn08Xuaw6HQ5WVlSovL1d5eblOlZWp+exZOex2WW02dQkMVM/evRUVFaWoqChFRER41Qf+AgDQGXF9/65OUewAAAA6A69+HzsAAAD8B8UOAADAR1DsAAAAfATFDgAAwEdQ7AAAAHwExQ4AAMBHUOwAAAB8BMUOAADAR1DsAAAAfATFDgAAwEdQ7AAAAHwExQ4AAMBHUOwAAAB8BMUOAADAR1DsAAAAfATFDgAAwEdQ7AAAAHwExQ4AAMBHUOwAAAB8BMUOAADAR1DsAAAAfATFDgAAwEdQ7AAAAHwExQ4AAMBHUOwAAAB8BMUOAADAR1DsAAAAfMT/B/LJMi/sbVDNAAAAAElFTkSuQmCC", + "image/png": "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", "text/plain": [ "
" ] @@ -206,7 +185,7 @@ "\n", "graph_search_space = tpot2.search_spaces.pipelines.GraphPipeline(\n", " root_search_space= tpot2.config.get_search_space(\"SGDRegressor\"),\n", - " leaf_search_space = tpot2.search_spaces.nodes.FSSNode(subsets=n_features), \n", + " leaf_search_space = tpot2.search_spaces.nodes.FSSNode(subsets=X_train.shape[1]), \n", " inner_search_space = tpot2.config.get_search_space([\"arithmatic\"]),\n", " max_size = 10,\n", ")\n", @@ -219,7 +198,7 @@ " n_jobs=32,\n", " classification=False,\n", " search_space = graph_search_space ,\n", - " verbose=1,\n", + " verbose=2,\n", " )\n", "\n", "\n", @@ -231,16 +210,25 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "SGDRegressor_1 : SGDRegressor()\n", - "FeatureSetSelector_1 : FeatureSetSelector(name='7', sel_subset=[7])\n", - "FeatureSetSelector_2 : FeatureSetSelector(name='7', sel_subset=[7])\n" + "SGDRegressor_1 : SGDRegressor(alpha=6.014583593220849e-05, epsilon=2.109266488257155e-05,\n", + " eta0=0.06363149574923024, l1_ratio=2.519434640584705e-06,\n", + " learning_rate='constant', loss='squared_epsilon_insensitive',\n", + " penalty='elasticnet')\n", + "FeatureSetSelector_1 : FeatureSetSelector(name='8', sel_subset=[8])\n", + "FeatureSetSelector_2 : FeatureSetSelector(name='2', sel_subset=[2])\n", + "FeatureSetSelector_3 : FeatureSetSelector(name='9', sel_subset=[9])\n", + "GTTransformer_1 : GTTransformer()\n", + "LTTransformer_1 : LTTransformer()\n", + "LTTransformer_2 : LTTransformer()\n", + "FeatureSetSelector_4 : FeatureSetSelector(name='1', sel_subset=[1])\n", + "MaxTransformer_1 : MaxTransformer()\n" ] } ], @@ -252,12 +240,12 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "image/png": "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48ePV5cuXfT999+rsLBQb775pr7//ntt2rRJGzZscHSNAAAATsWuK1B33XWXduzYocLCQrVs2VJr1qxRQECAMjIyFBER4egabRQUFCg8PFwWi0VZWVk2fZ9//rnatWsnHx8f+fv765FHHtHBgwet/evXr5fFYimxZWdn2xxnzpw5Cg0NlZeXl6KiorRly5YyPScAAOBaTAeoy5cvq1+/frJYLHrnnXe0ZcsWff/991qyZIlatmxZFjXaeOmll1S3bt0S7QcOHFCPHj3UqVMnZWVl6fPPP9epU6f08MMPlxi7d+9enThxwrr9fj1XamqqEhISlJycrG3btun2229XbGysTp48WabnBQAAXIfpAFW1alUtW7asLGr5U6tXr9aaNWv0xhtvlOjLzMxUUVGRxo0bpwYNGqhNmzYaOXKksrKydPnyZZuxAQEBqlOnjnVzc/u/aZg2bZoGDBigp59+Ws2aNdO8efPk7e2td99996p1FRQUKC8vz2YDAACVl1238OLi4rRixQoHl3JtOTk5GjBggBYvXixvb+8S/REREXJzc9OCBQtUVFSk3NxcLV68WDExMapatarN2PDwcAUFBem+++7Txo0bre2XLl1SZmamzQ8iu7m5KSYmRhkZGVetbcKECfLz87NuISEhDjhjAADgrOxaRH7bbbcpJSVFGzduVEREhKpXr27TP2zYMIcU9xvDMBQfH69BgwYpMjLSZl3Tb8LCwrRmzRo99thjGjhwoIqKihQdHa1Vq1ZZxwQFBWnevHmKjIxUQUGB5s+frw4dOmjz5s1q06aNTp06paKiIgUGBtocOzAw0Pqbf1cyatQoJSQkWF/n5eURogAAqMTsClD/+Mc/VLNmTWVmZiozM9Omz2KxlDpAJSUladKkSdccs3v3bq1Zs0b5+fkaNWrUVcdlZ2drwIAB6tu3r3r16qX8/HyNHj1ajz76qNauXSuLxaLGjRurcePG1n3at2+vn376SdOnT9fixYtLVfOVeHp6ytPT0+79AQCAa7ErQB04cMAhb56YmKj4+Phrjqlfv77WrVunjIyMEiElMjJSffr00aJFizRnzhz5+flp8uTJ1v4lS5YoJCREmzdvVrt27a54/LZt2+rrr7+WJN18881yd3dXTk6OzZicnBzVqVPHjjMEAACVkV0BylH8/f3l7+//p+NmzpypcePGWV8fP35c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ySefKD09XcXFxfrhhx80depUSdKJEyckSUFBQZo3b56WLVumZcuWKSQkRB06dNC2bdskSadOnVJRUZECAwNtjh0YGHjNxfETJkyQn5+fdQsJCXHEaQMAACdlV4AaO3as7r//fqWnp+vUqVM6c+aMzVZaSUlJV1zU/fttz549mjVrlvLz822uDP3RgAEDNHToUD300EPy8PBQu3bt1LNnz19P0u3X02zcuLEGDhyoiIgItW/fXu+++67at2+v6dOn2zMNVqNGjVJubq51O3LkyHUdDwAAODe7buHNmzdPCxcu1JNPPnldb56YmKj4+Phrjqlfv77WrVunjIwMeXp62vRFRkaqT58+WrRokSwWiyZNmqTx48crOztb/v7+Sk9Ptx7jatq2bauvv/5aknTzzTfL3d1dOTk5NmNycnJUp06dqx7D09OzRG0AAKDysitAXbp0Se3bt7/uN/f39y/VYw9mzpypcePGWV8fP35csbGxSk1NVVRUlM1Yd3d33XLLLZKkDz74QNHR0dd8j6ysLAUFBUmSPDw8FBERofT0dMXFxUmSiouLlZ6erqFDh5o9PQAAUEnZFaD69++v999/X6+++qqj67miW2+91eZ1jRo1JEkNGjRQcHCwpF/XL3388cfq0KGDLl68qAULFuijjz7Shg0brPvNmDFDYWFhat68uS5evKj58+dr3bp1WrNmjXVMQkKC+vbtq8jISLVt21YzZszQ+fPn9fTTT5fDmQIAAFdgV4C6ePGi/v73v+uLL75Qq1atVLVqVZv+adOmOaQ4sxYtWqSRI0fKMAxFR0dr/fr1atu2rbX/0qVLSkxM1LFjx+Tt7a1WrVrpiy++UMeOHa1jHn/8cf38888aPXq0srOzFR4errS0tBILywEAwI3LYhiGYXan3weOEge0WLRu3brrKsrV5eXlyc/PT7m5ufL19a3ocgAAQCmY+fy26wrUl19+aVdhAAAAlYHdz4ECAAC4URGgAAAATCJAAQAAmESAAgAAMIkABQAAYBIBCgAAwCQCFAAAgEkEKAAAAJMIUAAAACYRoAAAAEwiQAEAAJhEgAIAADCJAAUAAGASAQoAAMAkAhQAAIBJBCgAAACTCFAAAAAmEaAAAABMIkABAACYRIACAAAwiQAFAABgEgEKAADAJAIUAACASQQoAAAAkwhQAAAAJhGgAAAATCJAAQAA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vLwUHh5eITWEhoZqxowZFfLeQGVHgAJw3eLj42WxWDRx4kSb9hUrVshisVRQVRUrOTlZ1atX1969e0v80OlvmDfAdRGgADiEl5eXJk2apDNnzlR0KQ5z6dIlu/f96aefdNddd6levXq66aabrjquMs4bcCMgQAFwiJiYGNWpU0cTJky46pgxY8aUuJ01Y8YMhYaGWl/Hx8crLi5O48ePV2BgoGrWrKmUlBQVFhbqxRdfVO3atRUcHKwFCxaUOP6ePXvUvn17eXl5qUWLFtqwYYNN/65du9SlSxfVqFFDgYGBevLJJ3Xq1Clrf4cOHTR06FANHz5cN998s2JjY694HsXFxUpJSVFwcLA8PT0VHh6utLQ0a7/FYlFmZqZSUlJksVg0ZsyY65o3SVq2bJmaN28uT09PhYaGaurUqTb9J0+eVLdu3VStWjWFhYXpvffeK3GMs2fPqn///vL395evr686deqkHTt2WPt37Nihjh07ysfHR76+voqIiNA333xzzbqAGxUBCoBDuLu7a/z48Zo1a5aOHj16Xcdat26djh8/rq+++krTpk1TcnKyHnroIdWqVUubN2/WoEGDNHDgwBLv8+KLLyoxMVHbt29XdHS0unXrpv/973+Sfg0PnTp1UuvWrfXNN98oLS1NOTk5euyxx2yOsWjRInl4eGjjxo2aN2/eFet78803NXXqVL3xxhv69ttvFRsbq+7du2vfvn2SpBMnTqh58+ZKTEzUiRMnNHLkyKuea2nmLTMzU4899ph69uypnTt3asyYMXr11Ve1cOFC65j4+HgdOXJEX375pT7++GPNnTtXJ0+etDnOX//6V508eVKrV69WZmam2rRpo86dO+v06dOSpD59+ig4OFhbt25VZmamkpKSVLVq1avWDtzQDAC4Tn379jV69OhhGIZhtGvXzujXr59hGIaxfPly4/d/zSQnJxu33367zb7Tp0836tWrZ3OsevXqGUVFRda2xo0bG3fffbf1dWFhoVG9enXjgw8+MAzDMA4cOGBIMiZOnGgdc/nyZSM4ONiYNGmSYRiG8dprrxn333+/zXsfOXLEkGTs3bvXMAzDuPfee43WrVv/6fnWrVvXeP31123a7rjjDuO5556zvr799tuN5OTkax6ntPPWu3dv47777rPZ98UXXzSaNWtmGIZh7N2715BkbNmyxdq/e/duQ5Ixffp0wzAM4z//+Y/h6+trXLx40eY4DRo0MN5++23DMAzDx8fHWLhw4Z+cPQDDMAyuQAFwqEmTJmnRokXavXu33cdo3ry53Nz+76+nwMBAtWzZ0vra3d1dN910U4krLNHR0dZ/r1KliiIjI6117NixQ19++aVq1Khh3Zo0aSLp1/VKv4mIiLhmbXl5eTp+/LjuvPNOm/Y777zzus75WvO2e/fuK77fvn37VFRUpN27d6tKlSo2tTdp0kQ1a9a0vt6xY4fOnTunm266yWYODhw4YD3/hIQE9e/fXzExMZo4caLNvACwRYAC4FD33HOPYmNjNWrUqBJ9bm5uMgzDpu3y5cslxv3xtpHFYrliW3FxcanrOnfunLp166asrCybbd++fbrnnnus46pXr17qYzrStebNEc6dO6egoKAS57937169+OKLkn5do/bdd9/pwQcf1Lp169SsWTMtX768TOoBXF2Vii4AQOUzceJEhYeHq3Hjxjbt/v7+ys7OlmEY1q/pO/LZTf/973+tYaiwsFCZmZkaOnSoJKlNmzZatmyZQkNDVaWK/X/1+fr6qm7dutq4caPuvfdea/vGjRvVtm3b66r/avPWtGlTbdy40aZt48aNatSokdzd3dWkSRPr+d5xxx2SpL179+rs2bPW8W3atFF2draqVKlis2j/jxo1aqRGjRppxIgR6tWrlxYsWKC//OUv13VeQGXEFSgADteyZUv16dNHM2fOtGnv0KGDfv75Z02ePFk//fST5syZo9WrVzvsfefMmaPly5drz549GjJkiM6cOaN+/fpJkoYMGaLTp0+rV69e2rp1q3766Sd9/vnnevrpp1VUVGTqfV588UVNmjRJqamp2rt3r5KSkpSVlaUXXnjhuuq/2rwlJiYqPT1dr732mn744QctWrRIs2fPti5Ob9y4sR544AENHDhQmzdvVmZmpvr3769q1apZjxETE6Po6GjFxcVpzZo1OnjwoDZt2qS//e1v+uabb3ThwgUNHTpU69ev16FDh7Rx40Zt3bpVTZs2va5zAiorAhSAMpGSklLiFlvTpk01d+5czZkzR7fffru2bNlyzW+omTVx4kRNnDhRt99+u77++mt9+umnuvnmmyXJetWoqKhI999/v1q2bKnhw4erZs2aNuutSmPYsGFKSEhQYmKiWrZsqbS0NH366ae67bbbrvscrjRvbdq00dKlS/Xhhx+qRYsWGj16tFJSUhQfH28ds2DBAtWtW1f33nuvHn74YT377LMKCAiw9lssFq1atUr33HOPnn76aTVq1Eg9e/bUoUOHFBgYKHd3d/3vf//TU089pUaNGumxxx5Tly5dNHbs2Os+J6Ayshh/XJAAAACAa+IKFAAAgEkEKAAAAJMIUAAAACYRoAAAAEwiQAEAAJhEgAIAADCJAAUAAGASAQoAAMAkAhQAAIBJBCgAAACTCFAAAAAm/X9rvXat8Ec1MAAAAABJRU5ErkJggg==", + "image/png": "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sWHDBqNjx47G0KFD3V1SuZk4caJx1113ubsMtxk9erSRmJjo7jI8xtChQ42GDRsaxcXF7i6l3HTr1s3o16+fQ9vvf/97o3fv3m6qqHz9/PPPhq+vr/Hxxx87tMfHxxvPPfdcudfDLTwvlJubK0mqUaOGmytxj6KiIi1fvlwXL15UQkKCu8spV4MHD1a3bt2UlJTk7lLc4tChQ4qIiFCDBg3Uu3dvHT9+3N0llZs1a9aodevWeuihhxQSEqKWLVvqb3/7m7vLcotffvlFS5cuVb9+/Vz+g+2erH379srIyNB3330nSdqzZ4+++uordenSxc2VlY/CwkIVFRXJarU6tAcEBOirr74q/4LKPbLhlhQVFRndunUzOnTo4O5Syt3evXuNwMBAw9fX17DZbMYnn3zi7pLK1XvvvWfExMQYly5dMgzDqHBXoNauXWu8//77xp49e4x169YZCQkJRt26dY28vDx3l1Yu/P39DX9/fyMtLc3YuXOn8frrrxtWq9VYvHixu0srdytWrDB8fX2NkydPuruUclVUVGSMHj3asFgshp+fn2GxWIzp06e7u6xylZCQYHTs2NE4efKkUVhYaLzzzjuGj4+P0bhx43KvhQDlZZ566imjXr16xokTJ9xdSrkrKCgwDh06ZGzfvt0YM2aMUatWLePbb791d1nl4vjx40ZISIixZ88ee1tFC1D/7dy5c0a1atUqzG3cSpUqGQkJCQ5tzzzzjNGuXTs3VeQ+DzzwgPG73/3O3WWUu/fee8+oXbu28d577xl79+413n77baNGjRoVKkR///33xj333GNIMnx9fY02bdoYvXv3NqKjo8u9FgKUFxk8eLBRu3Zt44cffnB3KR7hvvvuMwYMGODuMsrFBx98YP8H49pDkmGxWAxfX1+jsLDQ3SW6RevWrY0xY8a4u4xyUbduXaN///4Oba+++qoRERHhporc4+jRo4aPj4+Rnp7u7lLKXe3atY0FCxY4tE2dOtVo0qSJmypyn/z8fOPUqVOGYRjGww8/bHTt2rXca2ANlBcwDENPP/20PvjgA33xxReKjIx0d0keobi4WAUFBe4uo1zcd999+uabb7R79277o3Xr1urdu7d2794tX19fd5dY7vLz83X48GGFh4e7u5Ry0aFDhxLbl3z33XeqV6+emypyj7feekshISHq1q2bu0spdz///LN8fBw/tn19fVVcXOymitwnMDBQ4eHhOnfunD777DP17Nmz3GuoON8B9mKDBw/WsmXL9OGHHyooKEg5OTmSJJvNpoCAADdXVz7S0tLUpUsX1a1bVxcuXNCyZcv0j3/8Q5999pm7SysXQUFBiomJcWgLDAxUzZo1S7Tfrp599ll1795d9erV06lTpzRx4kT5+vqqV69e7i6tXAwfPlzt27fX9OnT9fDDD2vr1q1atGiRFi1a5O7Syk1xcbHeeust/elPf6pQW1hc0717dz3//POqW7eumjdvrl27dmnevHnq16+fu0srN5999pkMw1CTJk30/fffa+TIkYqOjtYTTzxR/sWU+zUvmCbpuo+33nrL3aWVm379+hn16tUzKleubAQHBxv33XefsX79eneX5VYVbQ3UI488YoSHhxuVK1c27rzzTuORRx4xvv/+e3eXVa4++ugjIyYmxvD39zeio6ONRYsWubukcvXZZ58ZkoyDBw+6uxS3yMvLM4YOHWrUrVvXsFqtRoMGDYznnnvOKCgocHdp5WbFihVGgwYNjMqVKxthYWHG4MGDjfPnz7ulFothVKAtTAEAAFyANVAAAAAmEaAAAABMIkABAACYRIACAAAwiQAFAABgEgEKAADAJAIUAACASQQoAAAAkwhQALze0aNHZbFYtHv3bneXYnfgwAG1a9dOVqtVcXFxbqmhfv36evHFF93y2sDtjgAF4Jb17dtXFotFM2fOdGhPT0+XxWJxU1XuNXHiRAUGBurgwYPKyMi47hjeN8B7EaAAuITVatWsWbN07tw5d5fiMr/88ovTzz18+LASExNVr1491axZ84bjbsf3DagICFAAXCIpKUlhYWGaMWPGDcdMmjSpxO2sF198UfXr17cf9+3bVykpKZo+fbpCQ0N1xx13aMqUKSosLNTIkSNVo0YN1a5dW2+99VaJ8x84cEDt27eX1WpVTEyMNm7c6NCflZWlLl26qGrVqgoNDdUf//hH/fTTT/b+e++9V08//bSGDRumWrVqKTk5+brzKC4u1pQpU1S7dm35+/srLi5O69ats/dbLBbt2LFDU6ZMkcVi0aRJk27pfZOkVatWqXnz5vL391f9+vU1d+5ch/4zZ86oe/fuCggIUGRkpN59990S5zh//ryefPJJBQcHq1q1avrtb3+rPXv22Pv37NmjTp06KSgoSNWqVVOr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", "text/plain": [ "
" ] diff --git a/Tutorial/5_Genetic_Feature_Selection.ipynb b/Tutorial/5_Genetic_Feature_Selection.ipynb index a9afcf4b..d062c5b4 100644 --- a/Tutorial/5_Genetic_Feature_Selection.ipynb +++ b/Tutorial/5_Genetic_Feature_Selection.ipynb @@ -18,14 +18,18 @@ "name": "stderr", "output_type": "stream", "text": [ - "Generation: 100%|██████████| 5/5 [00:08<00:00, 1.66s/it]\n" + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/distributed/node.py:182: UserWarning: Port 8787 is already in use.\n", + "Perhaps you already have a cluster running?\n", + "Hosting the HTTP server on port 35727 instead\n", + " warnings.warn(\n", + "Generation: 100%|██████████| 5/5 [04:07<00:00, 49.49s/it]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "0.9377587991718427\n" + "0.9554814292129066\n" ] } ], @@ -478,62 +482,62 @@ " background-color: var(--sklearn-color-fitted-level-3);\n", "}\n", "
Pipeline(steps=[('maskselector',\n",
-       "                 MaskSelector(mask=array([False,  True, False, False, False,  True,  True, False, False,\n",
-       "        True, False,  True,  True, False, False, False,  True, False,\n",
-       "       False, False, False,  True, False, False, False, False, False,\n",
-       "        True, False, False, False,  True,  True,  True, False,  True,\n",
-       "        True,  True,  True,  True, False,  True,  True, False, False,\n",
-       "       False, False,  True, False,  True, False, False, Fa...\n",
-       "        True,  True,  True, False, False,  True,  True, False, False,\n",
-       "        True, False, False, False, False, False,  True, False,  True,\n",
-       "       False, False,  True, False, False, False,  True,  True,  True,\n",
-       "       False, False, False,  True, False, False,  True, False, False,\n",
-       "       False,  True, False, False, False,  True,  True, False, False,\n",
+       "                 MaskSelector(mask=array([ True,  True, False,  True,  True,  True,  True,  True,  True,\n",
+       "        True, False,  True,  True,  True,  True,  True,  True,  True,\n",
+       "        True,  True, False,  True,  True,  True,  True,  True,  True,\n",
+       "        True,  True,  True, False, False, False,  True, False,  True,\n",
+       "        True,  True, False, False, False, False,  True, False,  True,\n",
+       "       False,  True, False,  True,  True,  True,  True,  True,  True,\n",
+       "       False,  True,  True,  True,  True, False, False,  True,  True,\n",
+       "        True, False, False,  True,  True, False, False, False, False,\n",
+       "        True,  True, False,  True,  True,  True, False,  True,  True,\n",
+       "        True, False,  True,  True,  True, False,  True,  True,  True,\n",
+       "        True,  True,  True,  True,  True, False, False, False,  True,\n",
        "        True]))),\n",
        "                ('graphpipeline',\n",
-       "                 GraphPipeline(graph=<networkx.classes.digraph.DiGraph object at 0x763168650dc0>))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
MaskSelector(mask=array([ True,  True, False,  True,  True,  True,  True,  True,  True,\n",
+       "        True, False,  True,  True,  True,  True,  True,  True,  True,\n",
+       "        True,  True, False,  True,  True,  True,  True,  True,  True,\n",
+       "        True,  True,  True, False, False, False,  True, False,  True,\n",
+       "        True,  True, False, False, False, False,  True, False,  True,\n",
+       "       False,  True, False,  True,  True,  True,  True,  True,  True,\n",
+       "       False,  True,  True,  True,  True, False, False,  True,  True,\n",
+       "        True, False, False,  True,  True, False, False, False, False,\n",
+       "        True,  True, False,  True,  True,  True, False,  True,  True,\n",
+       "        True, False,  True,  True,  True, False,  True,  True,  True,\n",
+       "        True,  True,  True,  True,  True, False, False, False,  True,\n",
+       "        True]))
[('KNeighborsClassifier_1', 'PassKBinsDiscretizer_1'), ('KNeighborsClassifier_1', 'ColumnOneHotEncoder_1'), ('ColumnOneHotEncoder_1', 'PCA_1')]
" ], "text/plain": [ "Pipeline(steps=[('maskselector',\n", - " MaskSelector(mask=array([False, True, False, False, False, True, True, False, False,\n", - " True, False, True, True, False, False, False, True, False,\n", - " False, False, False, True, False, False, False, False, False,\n", - " True, False, False, False, True, True, True, False, True,\n", - " True, True, True, True, False, True, True, False, False,\n", - " False, False, True, False, True, False, False, Fa...\n", - " True, True, True, False, False, True, True, False, False,\n", - " True, False, False, False, False, False, True, False, True,\n", - " False, False, True, False, False, False, True, True, True,\n", - " False, False, False, True, False, False, True, False, False,\n", - " False, True, False, False, False, True, True, False, False,\n", + " MaskSelector(mask=array([ True, True, False, True, True, True, True, True, True,\n", + " True, False, True, True, True, True, True, True, True,\n", + " True, True, False, True, True, True, True, True, True,\n", + " True, True, True, False, False, False, True, False, True,\n", + " True, True, False, False, False, False, True, False, True,\n", + " False, True, False, True, True, True, True, True, True,\n", + " False, True, True, True, True, False, False, True, True,\n", + " True, False, False, True, True, False, False, False, False,\n", + " True, True, False, True, True, True, False, True, True,\n", + " True, False, True, True, True, False, True, True, True,\n", + " True, True, True, True, True, False, False, False, True,\n", " True]))),\n", " ('graphpipeline',\n", - " GraphPipeline(graph=))])" + " GraphPipeline(graph=))])" ] }, "execution_count": 2, @@ -545,6 +549,38 @@ "est.fitted_pipeline_" ] }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow([est.fitted_pipeline_.steps[0][1].mask])" + ] + }, { "cell_type": "code", "execution_count": 3, @@ -552,7 +588,7 @@ "outputs": [ { "data": { - "image/png": "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csUVV6SzszNnnXVWtm7dmlNOOSW333577r333iTJ/fffn/e9731Zvnx5Lrvsspx55plJkjVr1uSqq6/O/+ruzu+2t+eS/X8nSfJ/ft2df1i+PENJTt+3I5+eNi3LN23Knz70YA5sa8vi3t7825HvyucffjjdWzYnSS7Z/3cyfcyYPNzbm28dfHAaz/3jmTV2bJLkrnXrtu3P/c88k8uWPp4tg4MZ29ycr886KFPHjMntq3+dy554Io2hoWx69NEcdMTh28Kuv78/xx13XG6++eZ0dnZm3rx5ufDCC3PhhRdm8+bNueOOOzJv3ryce+65+elPf5qBgYFceuml+cUvfpEtW7bkc5/7XD7+8Y/n2muvza233pp169Zln332edn/7YwePTpTpkzJli1bsn79+qxevXq4f1YA2CX22GOPnH766fn617+e888/P319ffnNb36T1atXZ+HChbnooouyadOmHHbYYTnjjDMytrcvH7jrF/nIxIm5Y926XLjfO/PnnY/kD97xjixYty77t7bmU1On5RtdT2TNli25fNZBOWqvvV5xjn6hcxYuzH874IA8uWlTvrmsK0myoX8gU8eMzj8ffkT+79q1+dtlXdk8OJiZbW25bOas7NHUlDkL7sgRz6zPd6++Orfccktmz5693X6efPLJ+dnPfvZm/EqHZdhhd/PNN2f69OkvWnbQQQfloIMOyg033JADDzxw2/J58+Zl8uTJueeee7Jx48a85z3vyYc//OEXrXvBBRfky1/+ck477bQXHapNksceeyzz58/PsmXLMnfu3G1h99BDD+Vrp52WDy1fkT/+1cLctW5d9mttzd8uW5Z/O/JdaW1uzhkP3J/37LN39mkZlcf6+nLFQbMze+zY/HjNmuwzqiXzDjssQ0ND6R0YyF3r12f22LGveDTveQe2teV7RxyZ5kYj859+Ot95clnO32vvzFuxPOe1t+fYtrbc/6535a6XHE174okncuihh277+YWnSdesWbPtKN4LY/l55513Xs4777ztlr/ce1/ouuuue9XXAeDN8vzlV1/5yle2LTv//PNf9J7Fixfn0c7O/Okhh2RgYCBtmzfnu5MmJZs3ZV1/f45uNPKZqdNyUfeqXPPUyvzvw4/IgnXr8vfLn8x3Dzn0ZeboJ/PVmTNfdjynTJiQUyZMyMDQUP7rol/lj6dMTc/WrfmH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2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQhLADAChC2AEAFCHsAACKEHYAAEUIOwCAIoQdAEARwg4AoAhhBwBQxP8H6n48pYDgLYIAAAAASUVORK5CYII=", + "image/png": "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", "text/plain": [ "
" ] diff --git a/Tutorial/6_GraphPipeline.ipynb b/Tutorial/6_GraphPipeline.ipynb index 320c68f1..810c6890 100644 --- a/Tutorial/6_GraphPipeline.ipynb +++ b/Tutorial/6_GraphPipeline.ipynb @@ -19,7 +19,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -107,7 +107,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.10.14" }, "orig_nbformat": 4, "vscode": { diff --git a/Tutorial/7_dask_parallelization.ipynb b/Tutorial/7_dask_parallelization.ipynb index 4769c491..0a68448f 100644 --- a/Tutorial/7_dask_parallelization.ipynb +++ b/Tutorial/7_dask_parallelization.ipynb @@ -33,14 +33,91 @@ "name": "stderr", "output_type": "stream", "text": [ - "Evaluations: : 242it [02:01, 1.99it/s]\n" + "Generation: 20%|██ | 1/5 [00:01<00:07, 1.93s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "0.9995194086144522\n" + "Generation: 1\n", + "Best roc_auc_score score: 0.9976190476190476\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Generation: 40%|████ | 2/5 [00:04<00:06, 2.12s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generation: 2\n", + "Best roc_auc_score score: 0.9976984126984128\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Generation: 60%|██████ | 3/5 [00:09<00:07, 3.80s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generation: 3\n", + "Best roc_auc_score score: 1.0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Generation: 80%|████████ | 4/5 [00:15<00:04, 4.46s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generation: 4\n", + "Best roc_auc_score score: 1.0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Generation: 100%|██████████| 5/5 [00:24<00:00, 4.99s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generation: 5\n", + "Best roc_auc_score score: 1.0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0\n" ] } ], @@ -55,7 +132,7 @@ "\n", "if __name__==\"__main__\":\n", " scorer = sklearn.metrics.get_scorer('roc_auc_ovr')\n", - " X, y = sklearn.datasets.load_digits(return_X_y=True)\n", + " X, y = sklearn.datasets.load_iris(return_X_y=True)\n", " X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, train_size=0.75, test_size=0.25)\n", " \n", " graph_search_space = tpot2.search_spaces.pipelines.GraphPipeline(\n", @@ -66,7 +143,7 @@ " )\n", "\n", " est = tpot2.TPOTEstimator(\n", - " scorers = [\"roc_auc\"],\n", + " scorers = [\"roc_auc_ovr\"],\n", " scorers_weights = [1],\n", " classification = True,\n", " cv = 5,\n", @@ -74,7 +151,7 @@ " population_size= 10,\n", " generations = 5,\n", " max_eval_time_seconds = 60*5,\n", - " verbose = 2,\n", + " verbose = 3,\n", " )\n", " \n", " \n", @@ -105,14 +182,20 @@ "name": "stderr", "output_type": "stream", "text": [ - "Evaluations: : 224it [02:00, 1.86it/s]\n" + "Generation: 100%|██████████| 5/5 [00:11<00:00, 2.24s/it]\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/decomposition/_fastica.py:595: UserWarning: n_components is too large: it will be set to 8\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/decomposition/_fastica.py:128: ConvergenceWarning: FastICA did not converge. Consider increasing tolerance or the maximum number of iterations.\n", + " warnings.warn(\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "0.9996005895289903\n" + "1.0\n" ] } ], @@ -122,7 +205,7 @@ "import sklearn.datasets\n", "import numpy as np\n", "scorer = sklearn.metrics.get_scorer('roc_auc_ovr')\n", - "X, y = sklearn.datasets.load_digits(return_X_y=True)\n", + "X, y = sklearn.datasets.load_iris(return_X_y=True)\n", "X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, train_size=0.75, test_size=0.25)\n", "\n", "\n", @@ -134,7 +217,7 @@ " )\n", "\n", "est = tpot2.TPOTEstimator(\n", - " scorers = [\"roc_auc\"],\n", + " scorers = [\"roc_auc_ovr\"],\n", " scorers_weights = [1],\n", " classification = True,\n", " cv = 5,\n", @@ -233,23 +316,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "Evaluations: : 119it [02:01, 1.02s/it]\n" + "Generation: 100%|██████████| 5/5 [00:13<00:00, 2.62s/it]\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "0.9988827327847432\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-08-23 13:49:06,747 - distributed.nanny - WARNING - Worker process still alive after 3.1999992370605472 seconds, killing\n", - "2023-08-23 13:49:06,748 - distributed.nanny - WARNING - Worker process still alive after 3.199999694824219 seconds, killing\n", - "2023-08-23 13:49:06,748 - distributed.nanny - WARNING - Worker process still alive after 3.199999694824219 seconds, killing\n" + "1.0\n" ] } ], @@ -263,7 +339,7 @@ "\n", "est = tpot2.TPOTEstimator(\n", " client = client,\n", - " scorers = [\"roc_auc\"],\n", + " scorers = [\"roc_auc_ovr\"],\n", " scorers_weights = [1],\n", " classification = True,\n", " cv = 5,\n", @@ -297,29 +373,23 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Evaluations: : 132it [02:00, 1.10it/s]\n" + "Generation: 100%|██████████| 5/5 [00:16<00:00, 3.33s/it]\n", + "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/linear_model/_sag.py:350: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "0.999973663151898\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-08-23 13:51:14,527 - distributed.nanny - WARNING - Worker process still alive after 3.199999694824219 seconds, killing\n", - "2023-08-23 13:51:14,528 - distributed.nanny - WARNING - Worker process still alive after 3.19999984741211 seconds, killing\n" + "1.0\n" ] } ], @@ -331,7 +401,7 @@ "import numpy as np\n", "\n", "scorer = sklearn.metrics.get_scorer('roc_auc_ovr')\n", - "X, y = sklearn.datasets.load_digits(return_X_y=True)\n", + "X, y = sklearn.datasets.load_iris(return_X_y=True)\n", "X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, train_size=0.75, test_size=0.25)\n", "\n", "\n", @@ -352,7 +422,7 @@ "\n", " est = tpot2.TPOTEstimator(\n", " client = client,\n", - " scorers = [\"roc_auc\"],\n", + " scorers = [\"roc_auc_ovr\"],\n", " scorers_weights = [1],\n", " classification = True,\n", " cv = 5,\n", @@ -385,17 +455,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sun Grid Engine is not installed. This example requires Sun Grid Engine to be installed.\n" - ] - } - ], + "outputs": [], "source": [ "from dask.distributed import Client, LocalCluster\n", "import sklearn\n", @@ -474,7 +536,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.11" + "version": "3.10.14" }, "orig_nbformat": 4, "vscode": { diff --git a/Tutorial/8_SH_and_early_termination.ipynb b/Tutorial/8_SH_and_early_termination.ipynb index 8b6c2e49..26f08e49 100644 --- a/Tutorial/8_SH_and_early_termination.ipynb +++ b/Tutorial/8_SH_and_early_termination.ipynb @@ -41,20 +41,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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W1RUpLy8PGPJz8+vtH0AAAAAaotqHR68vb0VExOjadOm6ddff5XZbNY777yj1NRUHTt2TNnZ2ZIkf39/q/f5+/sb28qTmJgoHx8fYwkPD6/U/QAAAABqg2odHiRp6dKlslgsCgoKkpubm+bOnav7779fTk6XX/r48eN1+vRpY8nIyLBjxQAAAEDtVO3DQ6tWrbR+/XoVFBTo8OHDSktLU0lJia666ioFBARIknJycqzek5OTY2wrj5ubmxo0aGAs3t7elboPAAAAQG1Q7cPDH7y8vBQYGKhTp05pzZo16tOnj0JDQxUQEKCUlBSjX15enjZt2qSYmBgHVgsAAADUPvUcXcDfWbNmjSwWi8LCwrRv3z49/fTTateunQYPHiyTyaQxY8bo+eefV5s2bRQaGqqJEyeqWbNm6tu3r6NLBwAAAGqVah8eTp8+rfHjx+vIkSNq3Lix7rnnHr3wwgtycXGRJD3zzDMqLCzUI488otzcXN1www1avXr1BTM0AQAAALgy1T483Hfffbrvvvsuut1kMmnq1KmaOnVqFVYFAAAA1D015p4HAAAAAI5FeAAAAHXGvHnzFBISInd3d0VHRystLe2S/ZOSkhQWFiYPDw8FBwfrySef1Llz56qoWqD6ITwAAIA6Yfny5UpISNDkyZO1detWderUSXFxcTp+/Hi5/d99912NGzdOkydP1u7du7Vw4UItX75c//rXv6q4cqD6IDwAAIA6YdasWRo2bJgGDx6s8PBwJScny9PTU2+99Va5/Tds2KBu3brpgQceUEhIiO644w7df//9f3u2AqjNCA8AAKBGy8/PV15enrEUFRVd0Ke4uFjp6emKjY012pycnBQbG6vU1NRyx+3atavS09ONsPDLL7/o888/V8+ePStnR4AagPAAAABqtPDwcPn4+BhLYmLiBX1+++03mc1m+fv7W7X7+/srOzu73HEfeOABTZ06VTfccINcXFzUqlUrde/encuWUKdV+6lagT87U2x2dAl1hoeLs0wmk6PLqBssFunMGUdXUTcUFjq6AlSCjIwMBQUFGetubm52GXfdunWaPn26/vOf/yg6Olr79u3T6NGjNW3aNE2cONEunwHUNIQH1CiRz3/l6BLqjMiWjfThYzEEiMpmsUg33CBt2ODoSoAay9vbWw0aNLhkH19fXzk7OysnJ8eqPScnRwEBAeW+Z+LEiXrooYc0dOhQSVKHDh2MB9P++9//lpMTF3Cg7uGnHtWeh4uzIls2cnQZdc6WQ6d0toQzPZXuzBmCgyN06yZ5ejq6ClQhV1dXRUREKCUlxWgrKytTSkqKYmJiyn3PmTNnLggIzs7OkiSLxVJ5xQLVGGceUO2ZTCZ9+FgMX2SryJliM2d4HCUnR/LycnQVdYOnp8RZtTonISFB8fHxioyMVFRUlJKSklRYWKjBgwdLkgYOHKigoCDjnom7775bs2bNUpcuXYzLliZOnKi7777bCBFAXUN4QI1gMpnk6cqPK2o5Ly/CA1CJ+vXrpxMnTmjSpEnKzs5W586dtXr1auMm6qysLKszDRMmTJDJZNKECRN09OhRNW3aVHfffbdeeOEFR+0C4HAmC+fddOTIEQUHB+vw4cNq3ry5o8sBHOpMcanCJ62RJGVMjSO0VbbCQql+/fOvCwoID0AF8PsbqHrc8wAAAADAJoQHAAAAADYhPAAAAACwCeEBAAAAgE0IDwAAAABsQngAAAAAYBPCAwAAAACbEB4AAAAA2ITwAAAAAMAmhAcAAAAANiE8AAAAALAJ4QEAAACATQgPAAAAAGxCeAAAAABgk8sKD/v379eECRN0//336/jx45KkL774Qj/99JNdiwMAAABQfVQ4PKxfv14dOnTQpk2btGLFChUUFEiSfvzxR02ePNnuBQIAAACoHiocHsaNG6fnn39ea9eulaurq9F+6623auPGjXYtDgAAAED1UeHwsHPnTv3jH/+4oN3Pz0+//fabXYoCAAAAUP1UODw0bNhQx44du6B927ZtCgoKsktRAAAAAKqfCoeH/v3769lnn1V2drZMJpPKysr0ww8/aOzYsRo4cKBdizObzZo4caJCQ0Pl4eGhVq1aadq0abJYLEafQYMGyWQyWS09evSwax0AAAAApHoVfcP06dM1YsQIBQcHy2w2Kzw8XGazWQ888IAmTJhg1+JefPFFzZ8/X0uWLNHVV1+tLVu2aPDgwfLx8dETTzxh9OvRo4cWLVpkrLu5udm1DgAAAACXER5cXV31xhtvaNKkSdq5c6cKCgrUpUsXtWnTxu7FbdiwQX369FGvXr0kSSEhIXrvvfeUlpZm1c/NzU0BAQF2/3wAAAAA/6fCly19++23On78uIKDg9WzZ0/dd999atOmjUpKSvTtt9/atbiuXbsqJSVFe/bskXR+Otjvv/9ed955p1W/devWyc/PT2FhYRo+fLhOnjx5yXGLioqUl5dnLPn5+XatGwAAAKiNKnzmoXv37vL399fHH3+s66+/3mj//fffdcstt8hsNtutuHHjxikvL0/t2rWTs7OzzGazXnjhBQ0YMMDo06NHD/3zn/9UaGio9u/fr3/961+68847lZqaKmdn53LHTUxM1HPPPWe3OgEAAIC64LKeMN2/f3/ddtttWrx4sVX7n29ktocPPvhAy5Yt07vvvqutW7dqyZIleuWVV7RkyRKrWnr37q0OHTqob9+++uyzz7R582atW7fuouOOHz9ep0+fNpaMjAy71g0AAADURhU+82AymTR+/HjdeOONGjhwoHbs2KGZM2ca2+zp6aef1rhx49S/f39JUocOHXTo0CElJiYqPj6+3PdcddVV8vX11b59+3TbbbeV28fNzc3qpuq8vDy71g0AAADURhU+8/DH2YV//vOf+u677/Tf//5Xd955p3Jzc+1dm86cOSMnJ+sSnZ2dVVZWdtH3HDlyRCdPnlRgYKDd6wEAAADqssu6bOkPXbp0UVpamnJzcy/6V/4rcffdd+uFF17QqlWrdPDgQX388ceaNWuW8YTrgoICPf3009q4caMOHjyolJQU9enTR61bt1ZcXJzd6wEAAADqsgqHh/j4eHl4eBjrAQEBWr9+vW677Ta1aNHCrsW9+uqr+p//+R89/vjjat++vcaOHatHH31U06ZNk3T+LMSOHTvUu3dvtW3bVkOGDFFERIS+++47nvUAAAAA2JnJYu+7nGugI0eOKDg4WIcPH1bz5s0dXQ7gUGeKSxU+aY0kKWNqnDxdK3xrFCqisFCqX//864ICycvLsfUANQi/v4GqZ9O3gh07duiaa66Rk5OTduzYccm+HTt2tEthAAAAAKoXm8JD586dlZ2dLT8/P3Xu3Fkmk8lqWtY/1k0mk12f8wAAAACg+rApPBw4cEBNmzY1XgMAAACoe2wKDy1btiz3NQAAAIC6o8KzLS1ZskSrVq0y1p955hk1bNhQXbt21aFDh+xaHAAAAIDqo8LhYfr06cZUrampqXrttdf00ksvydfXV08++aTdCwQAAABQPVR4DsbDhw+rdevWkqSVK1fqf/7nf/TII4+oW7du6t69u73rAwAAAFBNVPjMQ/369XXy5ElJ0pdffqnb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XQ7gWIWFUv36518XFHDPQyU7U1yq8ElrJEkZU+Pk6XrZz+4E6pya8Pvbw8ND27ZtU7t27azaf/75Z3Xp0kVnz57VwYMHFR4erjNnzjioSsB2Ff4t1bJlS0nn70fIyspScXGx1faOHTvapzIAAIAarl27dpoxY4YWLFggV1dXSVJJSYlmzJhhBIqjR49eMO08UF1VODycOHFCgwcP1hdffFHudrPZfMVFAQAA1Abz5s1T79691bx5c+MPrDt37pTZbNZnn30mSfrll1/0+OOPO7JMwGYVDg9jxoxRbm6uNm3apO7du+vjjz9WTk6Onn/+ec2cObMyagQAAKiRunbtqgMHDmjZsmXas2ePJOnee+/VAw88YEx7/9BDDzmyRKBCKhwevv76a33yySeKjIyUk5OTWrZsqdtvv10NGjRQYmKievXqVRl1AgAA1Eje3t567LHHHF0GYBcVDg+FhYXG8xwaNWqkEydOqG3bturQoYO2bt1q9wIBAABqqrfffvuS2wcOHFhFlQD2UeHwEBYWpszMTIWEhKhTp056/fXXFRISouTkZKunPAMAANR1o0ePtlovKSnRmTNn5OrqKk9PT8IDapwKh4fRo0fr2LFjkqTJkyerR48eWrZsmVxdXbV48WJ71wcAAFBjnTp16oK2vXv3avjw4Xr66acdUBFwZSocHh588EHjdUREhA4dOqSff/5ZLVq0kK+vr12LAwAAqG3atGmjGTNm6MEHH9TPP//s6HKACrnipxF5enrq2muvtUctAAAAdUK9evX066+/OroMoMJsCg8JCQk2Dzhr1qzLLgYAAKA2+fTTT63WLRaLjh07ptdee03dunVzUFXA5bMpPGzbts2mwUwm0xUVAwAAUJv07dvXat1kMqlp06a69dZbeT4WaiSbwsM333xT2XUAAADUOmVlZRe8dnJyclQ5wBXjpxcAAKASLVy4UNdcc408PDzk4eGha665Rm+++aajywIuS4VvmL7lllsueXnS119/fUUFAQAAVJZ58+bp5ZdfVnZ2tjp16qRXX31VUVFRF+2fm5urf//731qxYoV+//13tWzZUklJSerZs6dNnzdp0iTNmjVLo0aNUkxMjCQpNTVVTz75pLKysjR16lS77BdQVSocHjp37my1XlJSou3bt2vXrl2Kj4+3V10AAAB2tXz5ciUkJCg5OVnR0dFKSkpS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Wrlype69915J57/ov/baa4qOjpZ0PpC0b99eaWlpioqKuqy6Hn74YeP1VVddpblz5+q6665TQUGB6tevb1w94+fnZ3XPw59VpP7k5GS1atVK0vkv9FOnTr1obVlZWerSpYsiIyMlSSEhIRft6+PjIx8fH0nn78d4/fXX9dVXXykgIEBZWVlatGiRsrKyjHuSx44dq9WrV2vRokWaPn26DUeqfJd10ZTZbNbKlSu1e/duSdLVV1+t3r17X/JpdAAAALgyHi7Oypga57DProjrr7/e6sFjMTExmjlzpsxms3bv3q169eoZoUCSmjRporCwMOP7pSTVq1dP1113nbHerl07NWzYULt3777s8JCenq4pU6boxx9/1KlTp1RWVibp/Bf38PBwm8awtX5PT08jOEhSYGCgcYlUeYYPH6577rlHW7du1R133KG+ffsa4eRitm3bpoceekivvfaaunXrJknauXOnzGaz2rZta9W3qKhITZo0sWkfL6bC4WHfvn3q2bOnjh49akzXmpiYqODgYK1atcrqANlDSEiIDh06dEH7448/rnnz5ql79+5av3691bZHH31UycnJdq0DAADA0UwmU4UuHartnJycLrgXo7xZQf9QWFiouLg4xcXFadmyZWratKmysrIUFxen4uJiu9f319mZTCbTJe8dufPOO3Xo0CF9/vnnWrt2rW677TaNGDHiopMSZWdnq3fv3ho6dKiGDBlitBcUFMjZ2Vnp6ekX/HG/fv36V7BHl3HD9BNPPKFWrVrp8OHD2rp1q7Zu3aqsrCyFhobqiSeeuKJiyrN582YdO3bMWNauXStJxukgSRo2bJhVn5deesnudQAAAMB2mzZtslrfuHGj2rRpI2dnZ7Vv316lpaVWfU6ePKnMzEyrv/6XlpZazfCZmZmp3NxctW/fXpLUtGnTC25AvtRzEH7++WedPHlSM2bM0I033qh27dpdcCbA1dVV0vkrbS7G1vovR9OmTRUfH6933nlHSUlJWrBgQbn9zp07pz59+qhdu3aaNWuW1bYuXbrIbDbr+PHjat26tdUSEBBwRfVd1kPiXnrpJavZlJo0aaIZM2ZccAbAHpo2baqAgABj+eyzz9SqVSvdfPPNRh9PT0+rPg0aNLB7HQAAALBdVlaWEhISlJmZqffee0+vvvqqRo8eLUlq06aN+vTpo2HDhun777/Xjz/+qAcffFBBQUHq06ePMYaLi4tGjRqlTZs2KT09XYMGDdL1119vXLJ06623asuWLXr77be1d+9eTZ48Wbt27bpoTS1atJCrq6teffVV/fLLL/r00081bdo0qz4tW7aUyWTSZ599phMnTqigoOCCcWytv6ImTZqkTz75RPv27dNPP/2kzz77zAhKf/Xoo4/q8OHDmjt3rk6cOKHs7GxlZ2eruLhYbdu21YABAzRw4ECtWLFCBw4cUFpamhITE7Vq1arLrk+6jPDg5uam/Pz8C9oLCgqMpFZZiouL9c477+jhhx+2uoZu2bJl8vX11TXXXKPx48frzJkzlxynqKhIeXl5xlLe/gAAAODyDRw4UGfPnlVUVJRGjBih0aNH65FHHjG2L1q0SBEREbrrrrsUExMji8Wizz//3OpSH09PTz377LN64IEH1K1bN9WvX1/Lly83tsfFxWnixIl65plndN111yk/P18DBw68aE1NmzbV4sWL9eGHHyo8PFwzZsy44JKgoKAgPffccxo3bpz8/f01cuTIcseypf6KcnV11fjx49WxY0fddNNNcnZ21vvvv19u3/Xr1+vYsWMKDw9XYGCgsWzYsMGob+DAgXrqqacUFhamvn37avPmzWrRosVl1ydJJktFJu3V+R+ErVu3auHChUbq27Rpk4YNG6aIiAgtXrz4igq6lA8++EAPPPCA1Z3jCxYsUMuWLdWsWTPt2LFDzz77rKKiorRixYqLjjNlyhQ999xzF7QfPnxYzZs3r7T6gRqhsFD643rIggLJy8ux9dRyZ4pLjWkXKzoNIlDXHTlyRMHBwbX29/e5c+d04MABhYaGyt3d3dHlVEj37t3VuXPnK5rif/HixRozZoxyc3PtVhcuztaftwr/lpo7d67i4+MVExNjJKvS0lL17t1bc+bMufyKbbBw4ULdeeedRnCQZJVgO3TooMDAQN12223av3//RW/eHj9+vBISEoz1o0ePXvH1aQAAAEBtV+Hw0LBhQ33yySfau3evdu/eLZPJpPbt26t169aVUZ/h0KFD+uqrry55RkGSMWXWvn37Lhoe/ngy9h/y8vLsVygAAABQS132+fE2bdoYgeHP9x9UlkWLFsnPz0+9evW6ZL8/7rAPDAys9JoAAABwoXXr1l3xGIMGDdKgQYOueBzYV4VvmJbOXz50zTXXyN3dXe7u7rrm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4++hQFUgPFSivLw8+fj46PTp02rQoIGjy6n1ON5Vi+NdtTjeVYvjXbU43kDNwQ3TAAAAAGxCeAAAAABgE8JDJXJzc9PkyZPl5ubm6FLqBI531eJ4Vy2Od9XieFctjjdQc3DPAwAAAACbcOYBAAAAgE0IDwAAAABsQngAAAAAYBPCAwAAAACbEB4q0bx58xQSEiJ3d3dFR0crLS3N0SXVCt9++63uvvtuNWvWTCaTSStXrrTabrFYNGnSJAUGBsrDw0OxsbHau3evY4qt4RITE3XdddfJ29tbfn5+6tu3rzIzM636nDt3TiNGjFCTJk1Uv3593XPPPcrJyXFQxTXf/Pnz1bFjRzVo0EANGjRQTEyMvvjiC2M7x7vyzJgxQyaTSWPGjDHaON72NWXKFJlMJqulXbt2xnaON1D9ER4qyfLly5WQkKDJkydr69at6tSpk+Li4nT8+HFHl1bjFRYWqlOnTpo3b16521966SXNnTtXycnJ2rRpk7y8vBQXF6dz585VcaU13/r16zVixAht3LhRa9euVUlJie644w4VFhYafZ588kn97//+rz788EOtX79ev/76q/75z386sOqarXnz5poxY4bS09O1ZcsW3XrrrerTp49++uknSRzvyrJ582a9/vrr6tixo1U7x9v+rr76ah07dsxYvv/+e2MbxxuoASyoFFFRUZYRI0YY62az2dKsWTNLYmKiA6uqfSRZPv74Y2O9rKzMEhAQYHn55ZeNttzcXIubm5vlvffec0CFtcvx48ctkizr16+3WCznj62Li4vlww8/NPrs3r3bIsmSmprqqDJrnUaNGlnefPNNjnclyc/Pt7Rp08aydu1ay80332wZPXq0xWLh57syTJ482dKpU6dyt3G8gZqBMw+VoLi4WOnp6YqNjTXanJycFBsbq9TUVAdWVvsdOHBA2dnZVsfex8dH0dHRHHs7OH36tCSpcePGkqT09HSVlJRYHe927dqpRYsWHG87MJvNev/991VYWKiYmBiOdyUZMWKEevXqZXVcJX6+K8vevXvVrFkzXXXVVRowYICysrIkcbyBmqKeowuojX777TeZzWb5+/tbtfv7++vnn392UFV1Q3Z2tiSVe+z/2IbLU1ZWpjFjxqhbt2665pprJJ0/3q6urmrYsKFVX473ldm5c6diYmJ07tw51a9fXx9//LHCw8O1fft2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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import tpot2\n", @@ -88,87 +77,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-06-14 11:49:45,920 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-q6nay1zr', purging\n", - "2023-06-14 11:49:45,921 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-wni1q2fv', purging\n", - "2023-06-14 11:49:45,921 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-kunoeg91', purging\n", - "2023-06-14 11:49:45,921 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-40sr99dr', purging\n", - "2023-06-14 11:49:45,922 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-_b9njy2q', purging\n", - "2023-06-14 11:49:45,922 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-qft6b6eq', purging\n", - "2023-06-14 11:49:45,922 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-cgnqe8s_', purging\n", - "2023-06-14 11:49:45,922 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-mcu4ugbz', purging\n", - "2023-06-14 11:49:45,923 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-za145tll', purging\n", - "2023-06-14 11:49:45,923 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-3qdbpmh_', purging\n", - "2023-06-14 11:49:45,923 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-54ch2nwd', purging\n", - "2023-06-14 11:49:45,923 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-0zc92jfw', purging\n", - "2023-06-14 11:49:45,923 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-ub9p6598', purging\n", - "2023-06-14 11:49:45,924 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-8peu6bbu', purging\n", - "2023-06-14 11:49:45,924 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-1qp5dr29', purging\n", - "2023-06-14 11:49:45,924 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-hfh3inka', purging\n", - "2023-06-14 11:49:45,924 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-b1yl5oa1', purging\n", - "2023-06-14 11:49:45,924 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-epp_nuw_', purging\n", - "2023-06-14 11:49:45,925 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-q1qdqc8g', purging\n", - "2023-06-14 11:49:45,925 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-ek1b28f4', purging\n", - "2023-06-14 11:49:45,925 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-1806jovl', purging\n", - "2023-06-14 11:49:45,925 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-p0cuouft', purging\n", - "2023-06-14 11:49:45,925 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-wh0g6edf', purging\n", - "2023-06-14 11:49:45,926 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-1o1ws1of', purging\n", - "2023-06-14 11:49:45,926 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-_zh96wch', purging\n", - "2023-06-14 11:49:45,926 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-wd9vzw4h', purging\n", - "2023-06-14 11:49:45,926 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-jy7obwb9', purging\n", - "2023-06-14 11:49:45,926 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-f6ildiiw', purging\n", - "2023-06-14 11:49:45,927 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-4ddayasf', purging\n", - "2023-06-14 11:49:45,927 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-fn6vfz6t', purging\n", - "2023-06-14 11:49:45,927 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-eyc403bk', purging\n", - "2023-06-14 11:49:45,927 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-fr7a5y2z', purging\n", - "2023-06-14 11:49:45,927 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-9kejqh6s', purging\n", - "2023-06-14 11:49:45,927 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-_xaoujzg', purging\n", - "2023-06-14 11:49:45,928 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-zimc_s51', purging\n", - "2023-06-14 11:49:45,928 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-vtsv2zit', purging\n", - "2023-06-14 11:49:45,928 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-hj0s47vd', purging\n", - "2023-06-14 11:49:45,928 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-dpti5p3r', purging\n", - "2023-06-14 11:49:45,928 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-4cplddft', purging\n", - "2023-06-14 11:49:45,929 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-poszaeet', purging\n", - "2023-06-14 11:49:45,929 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-cjx6kkgn', purging\n", - "2023-06-14 11:49:45,929 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-u096a9iq', purging\n", - "2023-06-14 11:49:45,929 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-0k3omqwi', purging\n", - "2023-06-14 11:49:45,929 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-zk0s6ywn', purging\n", - "2023-06-14 11:49:45,930 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-bwn757sx', purging\n", - "2023-06-14 11:49:45,930 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-2nu35fgy', purging\n", - "2023-06-14 11:49:45,930 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-w6b4di6m', purging\n", - "2023-06-14 11:49:45,930 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-asj0iobm', purging\n", - "2023-06-14 11:49:45,930 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-gxxzxsyi', purging\n", - "2023-06-14 11:49:45,931 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-qa8099ky', purging\n", - "2023-06-14 11:49:45,931 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-_uypy41h', purging\n", - "2023-06-14 11:49:45,931 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-a4ujlka7', purging\n", - "2023-06-14 11:49:45,931 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-dwhz05x3', purging\n", - "2023-06-14 11:49:45,931 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-kgug_o6d', purging\n", - "2023-06-14 11:49:45,932 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-rnbpw5ka', purging\n", - "2023-06-14 11:49:45,932 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-i52qfiid', purging\n", - "2023-06-14 11:49:45,932 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-_5el2wab', purging\n", - "2023-06-14 11:49:45,932 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-mqhhdxip', purging\n", - "2023-06-14 11:49:45,932 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-i6xplvqh', purging\n", - "2023-06-14 11:49:45,933 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-_dmc4eb5', purging\n", - "2023-06-14 11:49:45,933 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-mok5p0dw', purging\n", - "2023-06-14 11:49:45,933 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-ugwiqoc3', purging\n", - "2023-06-14 11:49:45,933 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-e97he6cf', purging\n", - "2023-06-14 11:49:45,933 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dask-worker-space/worker-an5jredd', purging\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total time: 17.05474090576172\n" - ] - } - ], + "outputs": [], "source": [ "# A Graph pipeline starting with at least one selector as a leaf, potentially followed by a series\n", "# of stacking classifiers or transformers, and ending with a classifier. The graph will have at most 15 nodes and a max depth of 6.\n", @@ -194,14 +105,14 @@ " )\n", "\n", "est = tpot2.TPOTEstimator(\n", - " scorers = [\"roc_auc\"],\n", + " scorers = [\"roc_auc_ovr\"],\n", " scorers_weights = [1],\n", " classification = True,\n", " cv = 5,\n", " search_space = graph_search_space,\n", " generations = 50,\n", " max_eval_time_seconds = 60*5,\n", - " verbose = 2,\n", + " verbose = 3,\n", "\n", "\n", " population_size=population_size,\n", @@ -211,6 +122,7 @@ " \n", " budget_range = budget_range,\n", " generations_until_end_budget=generations_until_end_budget,\n", + " n_jobs=30,\n", " )\n", "\n", "\n", @@ -256,20 +168,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Qz169Gi46gAAAG6hXkFm3Lhxkr5+1tLUqVOrrQsJCVH37t31H//xHw1WHAAAwK3UK8hUVVVJknr06KHc3Fx17NixUYoCAACoC78eGnnmzJmGrgMAAKDe/H76dUZGhjIyMnThwgXfkZobfv/73992YQAAAN/GryDz1FNPafny5RoyZIiioqK4OR4AALCFX0Fm06ZNSktL0+TJkxu6HgAAgDrz6z4y169f1/Dhwxu6FgAAgHrxK8g8/vjj2rZtW4MU8Pnnn+snP/mJOnTooLCwMPXv318fffSRb71lWVq6dKmioqIUFham+Ph4nTx5skF+NwAAMJtfp5auXbuml19+We+++64GDBigkJCQauvXrl1bp/18+eWXGjFihB5++GG9/fbb6tSpk06ePKl27dr5+qxZs0bPP/+8tm7dqh49emjJkiVKSEjQJ598otDQUH/KBwAAzYRfQebjjz/WwIEDJUlHjx6ttq4+F/6uXr1aMTExSk1N9bX9452BLcvSc889p8WLF2vs2LGSpFdeeUURERHavXu3JkyY4E/5gKSv//u6WnHzozZghivXmTsAfgaZffv2Ncgv//Of/6yEhAT9+Mc/VmZmpu644w796le/0s9//nNJX9+vpqioSPHx8b5t3G63hg4dqqysrBqDTHl5ucrLy32vvV5vg9SK5sWyLP1oU5byzn5pdykAgNvg1zUyN5w6dUrp6em6evWqpK8/HOrjr3/9qzZu3KjY2Filp6friSee0KxZs7R161ZJUlFRkSQpIiKi2nYRERG+dd+UkpIit9vtW2JiYuo7LPwTuFpRSYhpJoZ0a6ewkGC7ywBgE7+OyFy8eFGPPvqo9u3bJ4fDoZMnT6pnz56aPn262rVrV+fnLVVVVWnIkCF65plnJEn33nuvjh49qk2bNt30LKe6WrRokZKTk32vvV4vYQa39NHieLV08kFoqrCQYO5lBfwT8yvIzJ07VyEhISooKFDfvn197Y899piSk5PrHGSioqLUr1+/am19+/bVzp07JUmRkZGSpOLiYkVFRfn6FBcX+67R+SaXyyWXy1Wf4eCfXEtnsFo6/b7JNQDARn6dWnrnnXe0evVqdenSpVp7bGyszp49W+f9jBgxQidOnKjW9umnn6pbt26Svr7wNzIyUhkZGb71Xq9XOTk58ng8/pQOAACaEb/+DC0rK1PLli1vav/iiy/qdTRk7ty5Gj58uJ555hk9+uij+vDDD/Xyyy/r5ZdflvT1N6DmzJmjlStXKjY21vf16+joaI0bN86f0gEAQDPi1xGZBx98UK+88orvtcPhUFVVldasWaOHH364zvu57777tGvXLv3hD3/Q3XffrRUrVui5557TpEmTfH0WLFigmTNnasaMGbrvvvt0+fJl7dmzh3vIAAAAOaz6ftVIX987ZtSoURo0aJDee+89/eAHP9CxY8f0xRdf6ODBg+rVq1dj1OoXr9crt9ut0tJShYeH210OAsSV61+p39J0SdInyxO4RgYAAkxdP7/9OiJz991369NPP9UDDzygsWPHqqysTOPHj9fhw4cDKsQAAIDmze8/Q91ut37zm980ZC0AAAD14tcRmdTUVO3YseOm9h07dvhuZgcAANDY/AoyKSkp6tix403tnTt39t3cDgAAoLH5FWQKCgqqPdzxhm7duqmgoOC2iwIAAKgLv4JM586d9fHHH9/U/pe//EUdOnS47aIAAADqwq8gM3HiRM2aNUv79u1TZWWlKisr9d5772n27Nk1PpEaAACgMfj1raUVK1bob3/7m0aNGqUWLb7eRVVVlaZMmcI1MgAAoMnUO8hYlqWioiKlpaVp5cqVOnLkiMLCwtS/f3/fM5IAAACagl9Bpnfv3jp27JhiY2MVGxvbGHUBAAB8q3pfIxMUFKTY2FhdvHixMeoBAACoM78u9l21apXmz5+vo0ePNnQ9AAAAdebXxb5TpkzRlStXdM8998jpdCosLKza+i+++KJBigMAALgVv4LMc88918BlAAAA1J9fQWbq1KkNXQcAAEC9+XWNjCSdPn1aixcv1sSJE3XhwgVJ0ttvv61jx441WHEAAAC34leQyczMVP/+/ZWTk6M333xTly9flvT1IwqWLVvWoAUCAADUxq8gs3DhQq1cuVJ79+6V0+n0tY8cOVLZ2dkNVhwAAMCt+BVk8vPz9cMf/vCm9s6dO+vvf//7bRcFAABQF34FmbZt2+r8+fM3tR8+fFh33HHHbRcFAABQF34FmQkTJujXv/61ioqK5HA4VFVVpYMHD2revHmaMmVKQ9cIAABQI7+CzDPPPKO4uDjFxMTo8uXL6tevnx588EENHz5cixcvbugaAQAAauTXfWScTqc2b96spUuXKj8/X2VlZbr33nvVu3fvhq4PAACgVn4F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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import tpot2\n", @@ -291,17 +192,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total time: 23.97980833053589\n" - ] - } - ], + "outputs": [], "source": [ "graph_search_space = tpot2.search_spaces.pipelines.GraphPipeline(\n", " root_search_space= tpot2.config.get_search_space([\"KNeighborsClassifier\", \"LogisticRegression\", \"DecisionTreeClassifier\"]),\n", @@ -335,20 +228,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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P+uTpAsXLqhNmzZKTEz82X+hhJpQ2n/Xo0ePHmrRooXuuecebdmyJdhxfHbu3DlJUrNmza46J9T3oS9rlELzdeh2u7Vq1SqVl5crNTW11jmhvP98WZ8UmvtuwoQJuv/++2vsm9oEax9Sbnx06tQpud1uxcfHVxuPj4+/6jUKJSUltuYHkz/r69y5s1asWKE//elP+o//+A95PB7169dP//M//1Mfkevc1fZfWVmZLl68GKRUgdOiRQstXbpUH3zwgT744AMlJibq7rvvVmFhYbCj/SyPx6PJkyerf//+6tat21XnhdJr8Kd8XWOovQ737Nmjm2++WS6XS08++aQ+/PBDde3atda5obj/7Kwv1PadJK1atUqFhYXKycnxaX6w9uEN96ngCJzU1NRq/yLp16+funTpojfeeEMvvfRSEJPBF507d1bnzp29X/fr10+HDh3Sq6++qt/97ndBTPbzJkyYoL179+rzzz8PdpQ64+saQ+112LlzZxUVFencuXN6//33NWbMGG3evPmqBSDU2FlfqO2748ePa9KkSdqwYUODv/CZcuOj2NhYhYeHq7S0tNp4aWmpEhISat0mISHB1vxg8md9PxUREaGePXvq4MGDdRGx3l1t/zVu3FhRUVFBSlW3+vbt2+ALw9NPP63//M//1KeffqrWrVtfc24ovQb/Pztr/KmG/jp0Op3q0KGDJKl3797asWOHFi1apDfeeKPG3FDcf3bW91MNfd8VFBTo5MmT6tWrl3fM7Xbr008/1euvv67KykqFh4dX2yZY+5DTUj5yOp3q3bu38vPzvWMej0f5+flXPZ+amppabb4kbdiw4ZrnX4PFn/X9lNvt1p49e9SiRYu6ilmvQmn/BUpRUVGD3X+WZenpp5/Whx9+qE8++URt27b92W1CbR/6s8afCrXXocfjUWVlZa3fC7X9V5trre+nGvq+GzJkiPbs2aOioiLvo0+fPnr00UdVVFRUo9hIQdyHdXq5smFWrVpluVwua+XKldb+/futJ554wmrSpIlVUlJiWZZljR492po+fbp3/pYtW6ybbrrJeuWVV6wDBw5Y2dnZVkREhLVnz55gLeGa7K7vhRdesPLy8qxDhw5ZBQUF1sMPP2xFRkZa+/btC9YSrun8+fPWrl27rF27dlmSrAULFli7du2yjh07ZlmWZU2fPt0aPXq0d/7hw4et6Oho67nnnrMOHDhgLV682AoPD7dyc3ODtYRrsru+V1991Vq7dq313//939aePXusSZMmWWFhYdbHH38crCVc01NPPWXFxMRYmzZtsk6cOOF9VFRUeOeE+mvQnzWG0utw+vTp1ubNm60jR45Yu3fvtqZPn245HA5r/fr1lmWF/v6zu75Q2ndX89N3SzWUfUi5sem1116zbrnlFsvpdFp9+/a1vvzyS+/37rrrLmvMmDHV5v/hD3+wOnXqZDmdTuu2226z1q1bV8+J7bGzvsmTJ3vnxsfHW0OHDrUKCwuDkNo3V976/NPHlTWNGTPGuuuuu2ps06NHD8vpdFrt2rWz3n777XrP7Su765s7d67Vvn17KzIy0mrWrJl19913W5988klwwvugtrVJqrZPQv016M8aQ+l1+Nhjj1lt2rSxnE6n1bx5c2vIkCHeX/yWFfr7z+76QmnfXc1Py01D2YcOy7Ksuj02BAAAUH+45gYAABiFcgMAAIxCuQEAAEah3AAAAKNQbgAAgFEoNwAAwCiUGwAAYBTKDQAAMArlBkCDZ1mWnnjiCTVr1kwOh0NFRUXXnL9p0yY5HA6dPXv2qnNWrlypJk2aBDQngIaBTwUH0ODl5uZq5cqV2rRpk9q1a6fY2NhgRwLQgFFuADR4hw4dUosWLdSvX79gRwEQAjgtBaBB++d//mc988wzKi4ulsPhUFJSkiorKzVx4kTFxcUpMjJSAwYM0I4dO675PCtXrtQtt9yi6OhoPfDAAzp9+nQ9rQBAfaPcAGjQFi1apBdffFGtW7fWiRMntGPHDk2dOlUffPCB3nnnHRUWFqpDhw5KT0/XmTNnan2Obdu2ady4cXr66adVVFSkQYMG6eWXX67nlQCoL5QbAA1aTEyMGjVqpPDwcCUkJCg6OlpLlizRr3/9a913333q2rWrli1bpqioKC1fvrzW51i0aJH+4R/+QVOnTlWnTp00ceJEpaen1/NKANQXyg2AkHLo0CFdvnxZ/fv3945FRESob9++OnDgQK3bHDhwQCkpKdXGUlNT6zQngOCh3AAAAKNQbgCElPbt28vpdGrLli3escuXL2vHjh3q2rVrrdt06dJF27Ztqzb25Zdf1mlOAMHDW8EBhJS/+7u/01NPPaXnnntOzZo10y233KJ58+apoqJC48aNq3WbiRMnqn///nrllVc0fPhw5eXlKTc3t56TA6gvHLkBEHLmzJmjf/zHf9To0aPVq1cvHTx4UHl5eWratGmt8++8804tW7ZMixYtUnJystavX6+ZM2fWc2oA9cVhWZYV7BAAAACBwpEbAABgFMoNAAAwCuUGAAAYhXIDAACMQrkBAABGodwAAACjUG4AAIBRKDcAAMAolBsAAGAUyg0AADAK5QYAABjlfwHjX0kC8BXCEQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import tpot2\n", @@ -370,17 +252,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total time: 23.03678798675537\n" - ] - } - ], + "outputs": [], "source": [ "\n", "\n", @@ -415,20 +289,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([1.2, 3.4, 1. ])" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import math\n", "np.array([1.2,3.4,1])" @@ -436,25 +299,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/ribeirop/miniconda3/envs/tpot2env/lib/python3.10/site-packages/sklearn/neural_network/_multilayer_perceptron.py:686: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "total time: 36.7981653213501\n" - ] - } - ], + "outputs": [], "source": [ "est = tpot2.TPOTEstimator( \n", " generations=5,\n", @@ -504,7 +351,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.11" + "version": "3.10.14" }, "orig_nbformat": 4, "vscode": { diff --git a/Tutorial/9_Genetic_Algorithm_Overview.ipynb b/Tutorial/9_Genetic_Algorithm_Overview.ipynb index 3abfd1e6..9c931057 100644 --- a/Tutorial/9_Genetic_Algorithm_Overview.ipynb +++ b/Tutorial/9_Genetic_Algorithm_Overview.ipynb @@ -16,14 +16,14 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Generation: 100%|██████████| 100/100 [04:05<00:00, 2.46s/it]\n" + "Generation: 100%|██████████| 100/100 [03:43<00:00, 2.23s/it]\n" ] } ], @@ -35,7 +35,7 @@ "import matplotlib.pyplot as plt\n", "from dask.distributed import Client, LocalCluster\n", "\n", - "class SubsetSelector(tpot2.individual_representations.BaseIndividual):\n", + "class SubsetSelector(tpot2.individual.BaseIndividual):\n", " def __init__( self,\n", " values,\n", " initial_set = None,\n", @@ -59,7 +59,7 @@ " self.crossover_list = [self._crossover_swap]\n", " \n", "\n", - " def mutate(self, rng_=None):\n", + " def mutate(self, rng=None):\n", " mutation_list_copy = self.mutation_list.copy()\n", " random.shuffle(mutation_list_copy)\n", " for func in mutation_list_copy:\n", @@ -67,7 +67,7 @@ " return True\n", " return False\n", "\n", - " def crossover(self, ind2, rng_=None):\n", + " def crossover(self, ind2, rng=None):\n", " crossover_list_copy = self.crossover_list.copy()\n", " random.shuffle(crossover_list_copy)\n", " for func in crossover_list_copy:\n", @@ -146,15 +146,15 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "best subset {0, 65, 2, 1, 38, 71, 40, 75, 44, 15, 48, 16, 85, 59, 60, 62}\n", - "Best value 2056.0, weight 48.6142482308331\n", + "best subset {6, 10, 11, 17, 24, 25, 29, 30, 32, 37, 43, 45, 49, 50, 53, 57, 59, 66, 67, 76, 82, 91, 99}\n", + "Best value 2891.0, weight 49.1782782587545\n", "\n", "All results\n" ] @@ -189,73 +189,79 @@ " Generation\n", " Submitted Timestamp\n", " Completed Timestamp\n", + " Eval Error\n", " Pareto_Front\n", " \n", " \n", " \n", " \n", " 0\n", - " (16,)\n", - " 75.0\n", - " 2.054788\n", + " (24,)\n", + " 145.0\n", + " 2.946778\n", " NaN\n", " NaN\n", - " <__main__.SubsetSelector object at 0x7faf86cfc...\n", + " <__main__.SubsetSelector object at 0x735f11b77...\n", " 0.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", " 1\n", - " (13,)\n", - " 11.0\n", - " 4.466691\n", + " (99,)\n", + " 4.0\n", + " 3.345873\n", " NaN\n", " NaN\n", - " <__main__.SubsetSelector object at 0x7faf86635...\n", + " <__main__.SubsetSelector object at 0x735f11b77...\n", " 0.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", " 2\n", - " (41,)\n", - " 50.0\n", - " 6.249590\n", + " (28,)\n", + " 62.0\n", + " 6.965614\n", " NaN\n", " NaN\n", - " <__main__.SubsetSelector object at 0x7faf84e87...\n", + " <__main__.SubsetSelector object at 0x735f11b77...\n", " 0.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", " 3\n", - " (40,)\n", - " 35.0\n", - " 0.992726\n", + " (86,)\n", + " 108.0\n", + " 4.322944\n", " NaN\n", " NaN\n", - " <__main__.SubsetSelector object at 0x7faf83fdf...\n", + " <__main__.SubsetSelector object at 0x735f12734...\n", " 0.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", " 4\n", - " (77,)\n", - " 0.0\n", - " 1.475988\n", + " (36,)\n", + " 148.0\n", + " 1.660910\n", " NaN\n", " NaN\n", - " <__main__.SubsetSelector object at 0x7faf83ff1...\n", + " <__main__.SubsetSelector object at 0x735f12734...\n", " 0.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", @@ -270,147 +276,140 @@ " ...\n", " ...\n", " ...\n", + " ...\n", " \n", " \n", " 9995\n", - " (0, 1, 5, 15, 60, 62, 65, 75, 83, 85)\n", - " 1323.0\n", - " 17.180098\n", - " ((0, 5, 15, 60, 62, 65, 75, 83, 85), (0, 5, 15...\n", + " (0, 10, 11, 17, 24, 30, 32, 37, 43, 45, 49, 53...\n", + " 0.0\n", + " 58.255546\n", + " ((0, 10, 11, 17, 24, 30, 32, 37, 43, 45, 49, 5...\n", " ind_mutate\n", - " <__main__.SubsetSelector object at 0x7faf695e5...\n", + " <__main__.SubsetSelector object at 0x735f04c5d...\n", " 99.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", - " 1.0\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", + " NaN\n", " \n", " \n", " 9996\n", - " (0, 8, 15, 60, 62, 65, 75, 96)\n", - " 916.0\n", - " 18.695221\n", - " ((0, 15, 39, 40, 60, 62, 65, 75, 85), (0, 15, ...\n", - " ind_mutate , ind_mutate , ind_crossover\n", - " <__main__.SubsetSelector object at 0x7faf69fbf...\n", + " (10, 29, 48, 76)\n", + " 516.0\n", + " 10.002974\n", + " ((10, 17, 29, 76), (10, 17, 29, 76))\n", + " ind_mutate\n", + " <__main__.SubsetSelector object at 0x735f04c5e...\n", " 99.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", " 9997\n", - " (0, 15, 57, 62, 65, 75, 85, 86, 92)\n", - " 967.0\n", - " 15.581100\n", - " ((0, 15, 60, 62, 65, 75, 85, 86), (0, 15, 60, ...\n", + " (2, 10, 17, 25, 29, 43, 50, 53, 68, 76)\n", + " 1101.0\n", + " 5.322915\n", + " ((2, 10, 17, 25, 29, 43, 50, 53, 76), (2, 10, ...\n", " ind_mutate\n", - " <__main__.SubsetSelector object at 0x7faf6b05a...\n", + " <__main__.SubsetSelector object at 0x735f04c5e...\n", " 99.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", " 9998\n", - " (0, 15, 21, 65, 75, 76)\n", - " 878.0\n", - " 18.495023\n", - " ((0, 15, 60, 65, 75), (0, 15, 60, 65, 75))\n", + " (2, 10, 17, 20, 25, 29, 43, 76)\n", + " 910.0\n", + " 11.552131\n", + " ((2, 10, 17, 25, 29, 43, 76), (2, 10, 17, 25, ...\n", " ind_mutate\n", - " <__main__.SubsetSelector object at 0x7faf5eec0...\n", + " <__main__.SubsetSelector object at 0x735f04c5e...\n", " 99.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", " 9999\n", - " (0, 15, 39, 65, 75, 83, 85, 92)\n", - " 1054.0\n", - " 14.423653\n", - " ((0, 2, 15, 39, 60, 65, 75, 83, 85), (0, 15, 3...\n", - " ind_mutate , ind_mutate , ind_crossover\n", - " <__main__.SubsetSelector object at 0x7faf6b36b...\n", + " (0, 10, 11, 17, 25, 29, 43, 49, 50, 53, 57, 59...\n", + " 1967.0\n", + " 19.677724\n", + " ((0, 10, 11, 17, 25, 29, 30, 43, 49, 50, 53, 5...\n", + " ind_mutate\n", + " <__main__.SubsetSelector object at 0x735f04c5e...\n", " 99.0\n", - " 1.708121e+09\n", - " 1.708121e+09\n", + " 1.719625e+09\n", + " 1.719625e+09\n", + " None\n", " NaN\n", " \n", " \n", "\n", - "

10000 rows × 10 columns

\n", + "

10000 rows × 11 columns

\n", "" ], "text/plain": [ - " Selected Index Value Weight \\\n", - "0 (16,) 75.0 2.054788 \n", - "1 (13,) 11.0 4.466691 \n", - "2 (41,) 50.0 6.249590 \n", - "3 (40,) 35.0 0.992726 \n", - "4 (77,) 0.0 1.475988 \n", - "... ... ... ... \n", - "9995 (0, 1, 5, 15, 60, 62, 65, 75, 83, 85) 1323.0 17.180098 \n", - "9996 (0, 8, 15, 60, 62, 65, 75, 96) 916.0 18.695221 \n", - "9997 (0, 15, 57, 62, 65, 75, 85, 86, 92) 967.0 15.581100 \n", - "9998 (0, 15, 21, 65, 75, 76) 878.0 18.495023 \n", - "9999 (0, 15, 39, 65, 75, 83, 85, 92) 1054.0 14.423653 \n", + " Selected Index Value Weight \\\n", + "0 (24,) 145.0 2.946778 \n", + "1 (99,) 4.0 3.345873 \n", + "2 (28,) 62.0 6.965614 \n", + "3 (86,) 108.0 4.322944 \n", + "4 (36,) 148.0 1.660910 \n", + "... ... ... ... \n", + "9995 (0, 10, 11, 17, 24, 30, 32, 37, 43, 45, 49, 53... 0.0 58.255546 \n", + "9996 (10, 29, 48, 76) 516.0 10.002974 \n", + "9997 (2, 10, 17, 25, 29, 43, 50, 53, 68, 76) 1101.0 5.322915 \n", + "9998 (2, 10, 17, 20, 25, 29, 43, 76) 910.0 11.552131 \n", + "9999 (0, 10, 11, 17, 25, 29, 43, 49, 50, 53, 57, 59... 1967.0 19.677724 \n", "\n", - " Parents \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "9995 ((0, 5, 15, 60, 62, 65, 75, 83, 85), (0, 5, 15... \n", - "9996 ((0, 15, 39, 40, 60, 62, 65, 75, 85), (0, 15, ... \n", - "9997 ((0, 15, 60, 62, 65, 75, 85, 86), (0, 15, 60, ... \n", - "9998 ((0, 15, 60, 65, 75), (0, 15, 60, 65, 75)) \n", - "9999 ((0, 2, 15, 39, 60, 65, 75, 83, 85), (0, 15, 3... \n", - "\n", - " Variation_Function \\\n", - "0 NaN \n", - "1 NaN \n", - "2 NaN \n", - "3 NaN \n", - "4 NaN \n", - "... ... \n", - "9995 ind_mutate \n", - "9996 ind_mutate , ind_mutate , ind_crossover \n", - "9997 ind_mutate \n", - "9998 ind_mutate \n", - "9999 ind_mutate , ind_mutate , ind_crossover \n", + " Parents Variation_Function \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "9995 ((0, 10, 11, 17, 24, 30, 32, 37, 43, 45, 49, 5... ind_mutate \n", + "9996 ((10, 17, 29, 76), (10, 17, 29, 76)) ind_mutate \n", + "9997 ((2, 10, 17, 25, 29, 43, 50, 53, 76), (2, 10, ... ind_mutate \n", + "9998 ((2, 10, 17, 25, 29, 43, 76), (2, 10, 17, 25, ... ind_mutate \n", + "9999 ((0, 10, 11, 17, 25, 29, 30, 43, 49, 50, 53, 5... ind_mutate \n", "\n", " Individual Generation \\\n", - "0 <__main__.SubsetSelector object at 0x7faf86cfc... 0.0 \n", - "1 <__main__.SubsetSelector object at 0x7faf86635... 0.0 \n", - "2 <__main__.SubsetSelector object at 0x7faf84e87... 0.0 \n", - "3 <__main__.SubsetSelector object at 0x7faf83fdf... 0.0 \n", - "4 <__main__.SubsetSelector object at 0x7faf83ff1... 0.0 \n", + "0 <__main__.SubsetSelector object at 0x735f11b77... 0.0 \n", + "1 <__main__.SubsetSelector object at 0x735f11b77... 0.0 \n", + "2 <__main__.SubsetSelector object at 0x735f11b77... 0.0 \n", + "3 <__main__.SubsetSelector object at 0x735f12734... 0.0 \n", + "4 <__main__.SubsetSelector object at 0x735f12734... 0.0 \n", "... ... ... \n", - "9995 <__main__.SubsetSelector object at 0x7faf695e5... 99.0 \n", - "9996 <__main__.SubsetSelector object at 0x7faf69fbf... 99.0 \n", - "9997 <__main__.SubsetSelector object at 0x7faf6b05a... 99.0 \n", - "9998 <__main__.SubsetSelector object at 0x7faf5eec0... 99.0 \n", - "9999 <__main__.SubsetSelector object at 0x7faf6b36b... 99.0 \n", + "9995 <__main__.SubsetSelector object at 0x735f04c5d... 99.0 \n", + "9996 <__main__.SubsetSelector object at 0x735f04c5e... 99.0 \n", + "9997 <__main__.SubsetSelector object at 0x735f04c5e... 99.0 \n", + "9998 <__main__.SubsetSelector object at 0x735f04c5e... 99.0 \n", + "9999 <__main__.SubsetSelector object at 0x735f04c5e... 99.0 \n", "\n", - " Submitted Timestamp Completed Timestamp Pareto_Front \n", - "0 1.708121e+09 1.708121e+09 NaN \n", - "1 1.708121e+09 1.708121e+09 NaN \n", - "2 1.708121e+09 1.708121e+09 NaN \n", - "3 1.708121e+09 1.708121e+09 NaN \n", - "4 1.708121e+09 1.708121e+09 NaN \n", - "... ... ... ... \n", - "9995 1.708121e+09 1.708121e+09 1.0 \n", - "9996 1.708121e+09 1.708121e+09 NaN \n", - "9997 1.708121e+09 1.708121e+09 NaN \n", - "9998 1.708121e+09 1.708121e+09 NaN \n", - "9999 1.708121e+09 1.708121e+09 NaN \n", + " Submitted Timestamp Completed Timestamp Eval Error Pareto_Front \n", + "0 1.719625e+09 1.719625e+09 None NaN \n", + "1 1.719625e+09 1.719625e+09 None NaN \n", + "2 1.719625e+09 1.719625e+09 None NaN \n", + "3 1.719625e+09 1.719625e+09 None NaN \n", + "4 1.719625e+09 1.719625e+09 None NaN \n", + "... ... ... ... ... \n", + "9995 1.719625e+09 1.719625e+09 None NaN \n", + "9996 1.719625e+09 1.719625e+09 None NaN \n", + "9997 1.719625e+09 1.719625e+09 None NaN \n", + "9998 1.719625e+09 1.719625e+09 None NaN \n", + "9999 1.719625e+09 1.719625e+09 None NaN \n", "\n", - "[10000 rows x 10 columns]" + "[10000 rows x 11 columns]" ] }, - "execution_count": 2, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -432,12 +431,12 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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Jv7+/jh//ryS999//5m6zKRi2fivTp06mD17Nl588UWcOXPG7Ot2796NDz/8EEeOHMH169fx008/oXfv3kr+wIEDsXLlSumaiIgIbN68WTlOTEzE8OHD8dtvv8HOzg59+vTBwoULpYVgjh8/jsjISBw6dAhVq1bF8OHDMW6cvH9KaVhzrpnBUQ0ldSXXSyp3NUM9blPpHynveo6aF5fhLeVNufykkg6rFKek/82Qp3rtfUKdPXL1X38pr9MS9T7VTlcXAfM8Kw9+1turzyILLlo2Skm9O1/OMQzfNPpLzTyxxnR4xnCvGwDwiFNDYrs3yD/XN46oY6NOTmlsspyhPGd7k3nmMl4kzXh2kCmbT8l78hguvOZwRw2x3X8LicjWKsIibPlatWqFvXv3on79+ujWrRveeustnDhxAuvXr0erVq3uXYGRYtuV2MHBAdeuXbt3QQNpaWlo0qQJBg8ejKeffrrQMl26dMHy5cuVY51OJ+X369cP169fR1RUFHJycjBo0CC88sorWL16NQAgJSUFnTt3RqdOnbB06VKcOHECgwcPhpeXF1555RULPyUREZGZKtCYk3nz5iE19e54xmnTpiE1NRXff/896tSpY/FMHcCKzsmvv/4qHQshcP36dSxatAitW7e2qK6uXbuia9euRZbR6XTw8/MrNO/vv//G5s2bcejQITRrdvcpxCeffIJu3brho48+QkBAAFatWoXs7Gx89dVX0Gq1aNCgAWJiYjBv3jx2ToiIiO5TXl4e/v33XzRufPfptKur631vAmxx58Qw7ALcXSG2atWq6NChA+bOnVv4Rfdh586d8PHxQaVKldChQwe89957qFy5MgAgOjoaXl5eSscEADp16gQ7OzscOHAATz31FKKjo9GmTRtpL6CIiAh88MEHuH37drGtZmeNxFw19BTilKCk517uLJVLylBDKHF35PYadrJ7VTsh5dVxUYcUpeapT5yqO9+WyvXYM1xJO2iekvIq/aMuDnfNX63jVit5wbeaa9W08UJouU6mY6guqWr9eke1vU1fk3vavs+rs40c04KkvKJCNJ+Gfauk5334hEGO6Wv2/DLWZF7Ew5PkEwYzk7Ycn2HyOsPZQeYuFAdw4TWiB5kGVoR1bNIS27K3t0fnzp3x999/w8vLq1jqtGpvnZLSpUsXPP300wgODsb58+cxceJEdO3a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", "text/plain": [ "
" ] @@ -487,7 +486,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.10.14" }, "orig_nbformat": 4, "vscode": { diff --git a/tpot2/config/regressors.py b/tpot2/config/regressors.py index 5186d135..d1b9343d 100644 --- a/tpot2/config/regressors.py +++ b/tpot2/config/regressors.py @@ -47,7 +47,7 @@ def get_SGDRegressor_ConfigurationSpace(random_state): l1_ratio = Float("l1_ratio", bounds=(1e-7, 1.0), log=True) penalty = Categorical("penalty", ["l1", "l2", "elasticnet"]) epsilon = Float("epsilon", bounds=(1e-5, 1e-1), log=True) - loss = Categorical("loss", ["squared_loss", "huber", "epsilon_insensitive", "squared_epsilon_insensitive",]) + loss = Categorical("loss", ['epsilon_insensitive', 'squared_epsilon_insensitive', 'huber', 'squared_error']) eta0 = Float("eta0", bounds=(1e-7, 1e-1), log=True) learning_rate = Categorical("learning_rate", ['optimal', 'invscaling', 'constant']) power_t = Float("power_t", bounds=(1e-5, 1.0), log=True) diff --git a/tpot2/tpot_estimator/default_search_spaces.py b/tpot2/tpot_estimator/default_search_spaces.py new file mode 100644 index 00000000..6546ac86 --- /dev/null +++ b/tpot2/tpot_estimator/default_search_spaces.py @@ -0,0 +1,97 @@ +import tpot2 +from tpot2.search_spaces.pipelines import * +from tpot2.search_spaces.nodes import * +from tpot2.config import get_search_space + + + +def get_linear_search_space(classification=True, inner_predictors=True, **get_search_space_params ): + + if classification: + selectors = get_search_space(["selectors","selectors_classification", "Passthrough"], **get_search_space_params) + estimators = get_search_space(["classifiers"], **get_search_space_params) + else: + selectors = get_search_space(["selectors","selectors_regression", "Passthrough"], **get_search_space_params) + estimators = get_search_space(["regressors"], **get_search_space_params) + + # this allows us to wrap the classifiers in the EstimatorTransformer + # this is necessary so that classifiers can be used inside of sklearn pipelines + wrapped_estimators = WrapperPipeline(tpot2.builtin_modules.EstimatorTransformer, {}, estimators) + + scalers = get_search_space(["scalers","Passthrough"], **get_search_space_params) + + transformers_layer =UnionPipeline([ + ChoicePipeline([ + DynamicUnionPipeline(get_search_space(["transformers"],**get_search_space_params)), + get_search_space("SkipTransformer", **get_search_space_params), + ]), + get_search_space("Passthrough", **get_search_space_params) + ] + ) + + inner_estimators_layer = UnionPipeline([ + ChoicePipeline([ + DynamicUnionPipeline(wrapped_estimators), + get_search_space("SkipTransformer", **get_search_space_params), + ]), + get_search_space("Passthrough", **get_search_space_params)] + ) + + if inner_predictors: + search_space = SequentialPipeline(search_spaces=[ + scalers, + selectors, + transformers_layer, + inner_estimators_layer, + estimators, + ]) + else: + search_space = SequentialPipeline(search_spaces=[ + scalers, + selectors, + transformers_layer, + estimators, + ]) + + return search_space + + +def get_graph_search_space(classification=True, inner_predictors=True, **get_search_space_params ): + + if classification: + root_search_space = get_search_space(["classifiers"], **get_search_space_params) + inner_search_space = tpot2.config.get_search_space(["selectors","transformers","scalers","selectors_classification"],**get_search_space_params) + else: + root_search_space = get_search_space(["regressors"], **get_search_space_params) + + + if classification: + if inner_predictors: + inner_search_space = tpot2.config.get_search_space(["classifiers", "selectors","transformers","scalers","selectors_regression"],**get_search_space_params) + else: + inner_search_space = tpot2.config.get_search_space(["selectors","transformers","scalers","selectors_regression"],**get_search_space_params) + else: + if inner_predictors: + inner_search_space = tpot2.config.get_search_space(["regressors", "selectors","transformers","scalers","selectors_regression"],**get_search_space_params) + else: + inner_search_space = tpot2.config.get_search_space(["selectors","transformers","scalers","selectors_regression"],**get_search_space_params) + + + search_space = tpot2.search_spaces.pipelines.GraphPipeline( + root_search_space= root_search_space, + leaf_search_space = None, + inner_search_space = inner_search_space, + ) + + return search_space + +def get_default_search_space(default_search_space, classification=True, inner_predictors=True, **get_search_space_params): + if isinstance(default_search_space, str): + if default_search_space == "linear": + return get_linear_search_space(classification, inner_predictors, **get_search_space_params) + elif default_search_space == "graph": + return get_graph_search_space(classification, inner_predictors, **get_search_space_params) + else: + raise ValueError("Invalid search space") + else: + return default_search_space \ No newline at end of file diff --git a/tpot2/tpot_estimator/estimator.py b/tpot2/tpot_estimator/estimator.py index 1f4ccd5b..f4c0e954 100644 --- a/tpot2/tpot_estimator/estimator.py +++ b/tpot2/tpot_estimator/estimator.py @@ -18,7 +18,9 @@ from .estimator_utils import * from dask import config as cfg +from sklearn.experimental import enable_iterative_imputer +from .default_search_spaces import get_default_search_space def set_dask_settings(): cfg.set({'distributed.scheduler.worker-ttl': None}) @@ -110,7 +112,12 @@ def __init__(self, Parameters ---------- - + default_search_space : (String, tpot2.search_spaces.SklearnIndividualGenerator) + - String : The default search space to use for the optimization. This can be either "linear" or "graph". If "linear", will use the default linear pipeline search space. If "graph", will use the default graph pipeline search space. + - SklearnIndividualGenerator : The search space to use for the optimization. This should be an instance of a SklearnIndividualGenerator. + The search space to use for the optimization. This should be an instance of a SklearnIndividualGenerator. + TPOT2 has groups of search spaces found in the following folders, tpot2.search_spaces.nodes for the nodes in the pipeline and tpot2.search_spaces.pipelines for the pipeline structure. + scorers : (list, scorer) A scorer or list of scorers to be used in the cross-validation process. see https://scikit-learn.org/stable/modules/model_evaluation.html @@ -138,8 +145,6 @@ def __init__(self, bigger_is_better : bool, default=True If True, the objective function is maximized. If False, the objective function is minimized. Use negative weights to reverse the direction. - - cross_val_predict_cv : int, default=0 Number of folds to use for the cross_val_predict function for inner classifiers and regressors. Estimators will still be fit on the full dataset, but the following node will get the outputs from cross_val_predict. @@ -640,10 +645,48 @@ def objective_function(pipeline_individual, X_future = X y_future = y + if self.classification: + n_classes = len(np.unique(y)) + else: + n_classes = None + + get_search_space_params = {"n_classes": n_classes, + "n_samples":len(y), + "n_features":X.shape[1], + "random_state":self.random_state} + + self._search_space = get_default_search_space(self.search_space, classification=True, inner_predictors=True, **get_search_space_params) + + + if check_empty_values(X): + from sklearn.experimental import enable_iterative_imputer + + from ConfigSpace import ConfigurationSpace + from ConfigSpace import ConfigurationSpace, Integer, Float, Categorical, Normal + iterative_imputer_cs = ConfigurationSpace( + space = { + 'n_nearest_features' : Categorical('n_nearest_features', [100]), + 'initial_strategy' : Categorical('initial_strategy', ['mean','median', 'most_frequent', ]), + 'add_indicator' : Categorical('add_indicator', [True, False]), + } + ) + + imputation_search = tpot2.search_spaces.pipelines.ChoicePipeline([ + tpot2.config.get_search_space("SimpleImputer"), + tpot2.search_spaces.nodes.EstimatorNode(sklearn.impute.IterativeImputer, iterative_imputer_cs) + ]) + + + + + self.search_space_final = tpot2.search_spaces.pipelines.SequentialPipeline(search_spaces=[ imputation_search, self._search_space], memory="sklearn_pipeline_memory") + else: + self.search_space_final = self._search_space + def ind_generator(rng): rng = np.random.default_rng(rng) while True: - yield self.search_space.generate(rng) + yield self.search_space_final.generate(rng) #If warm start and we have an evolver instance, use the existing one if not(self.warm_start and self._evolver_instance is not None): @@ -938,3 +981,21 @@ def pareto_front(self): return self.evaluated_individuals else: return self.evaluated_individuals[self.evaluated_individuals["Pareto_Front"]==1] + + +def check_empty_values(data): + """ + Checks for empty values in a dataset. + + Args: + data (numpy.ndarray or pandas.DataFrame): The dataset to check. + + Returns: + bool: True if the dataset contains empty values, False otherwise. + """ + if isinstance(data, pd.DataFrame): + return data.isnull().values.any() + elif isinstance(data, np.ndarray): + return np.isnan(data).any() + else: + raise ValueError("Unsupported data type") \ No newline at end of file diff --git a/tpot2/tpot_estimator/templates/tpottemplates.py b/tpot2/tpot_estimator/templates/tpottemplates.py index 4b0e90ad..d31dcc88 100644 --- a/tpot2/tpot_estimator/templates/tpottemplates.py +++ b/tpot2/tpot_estimator/templates/tpottemplates.py @@ -6,8 +6,11 @@ from tpot2.selectors import survival_select_NSGA2, tournament_selection_dominated #TODO These do not follow sklearn conventions of __init__ +from ..default_search_spaces import get_default_search_space + class TPOTRegressor(TPOTEstimator): def __init__( self, + search_space = "linear", scorers=['neg_mean_squared_error'], scorers_weights=[1], cv = 10, #remove this and use a value based on dataset size? @@ -33,10 +36,162 @@ def __init__( self, allow_inner_regressors=True, **tpotestimator_kwargs, ): - """ - See TPOTEstimator for documentation - """ + ''' + An sklearn baseestimator that uses genetic programming to optimize a regression pipeline. + For more parameters, see the TPOTEstimator class. + + Parameters + ---------- + + search_space : (String, tpot2.search_spaces.SklearnIndividualGenerator) + - String : The default search space to use for the optimization. This can be either "linear" or "graph". If "linear", will use the default linear pipeline search space. If "graph", will use the default graph pipeline search space. + - SklearnIndividualGenerator : The search space to use for the optimization. This should be an instance of a SklearnIndividualGenerator. + The search space to use for the optimization. This should be an instance of a SklearnIndividualGenerator. + TPOT2 has groups of search spaces found in the following folders, tpot2.search_spaces.nodes for the nodes in the pipeline and tpot2.search_spaces.pipelines for the pipeline structure. + + scorers : (list, scorer) + A scorer or list of scorers to be used in the cross-validation process. + see https://scikit-learn.org/stable/modules/model_evaluation.html + + scorers_weights : list + A list of weights to be applied to the scorers during the optimization process. + + classification : bool + If True, the problem is treated as a classification problem. If False, the problem is treated as a regression problem. + Used to determine the CV strategy. + + cv : int, cross-validator + - (int): Number of folds to use in the cross-validation process. By uses the sklearn.model_selection.KFold cross-validator for regression and StratifiedKFold for classification. In both cases, shuffled is set to True. + - (sklearn.model_selection.BaseCrossValidator): A cross-validator to use in the cross-validation process. + - max_depth (int): The maximum depth from any node to the root of the pipelines to be generated. + + other_objective_functions : list, default=[] + A list of other objective functions to apply to the pipeline. The function takes a single parameter for the graphpipeline estimator and returns either a single score or a list of scores. + + other_objective_functions_weights : list, default=[] + A list of weights to be applied to the other objective functions. + + objective_function_names : list, default=None + A list of names to be applied to the objective functions. If None, will use the names of the objective functions. + + bigger_is_better : bool, default=True + If True, the objective function is maximized. If False, the objective function is minimized. Use negative weights to reverse the direction. + + categorical_features : list or None + Categorical columns to inpute and/or one hot encode during the preprocessing step. Used only if preprocessing is not False. + + categorical_features: list or None + Categorical columns to inpute and/or one hot encode during the preprocessing step. Used only if preprocessing is not False. + - None : If None, TPOT2 will automatically use object columns in pandas dataframes as objects for one hot encoding in preprocessing. + - List of categorical features. If X is a dataframe, this should be a list of column names. If X is a numpy array, this should be a list of column indices + + + memory: Memory object or string, default=None + If supplied, pipeline will cache each transformer after calling fit. This feature + is used to avoid computing the fit transformers within a pipeline if the parameters + and input data are identical with another fitted pipeline during optimization process. + - String 'auto': + TPOT uses memory caching with a temporary directory and cleans it up upon shutdown. + - String path of a caching directory + TPOT uses memory caching with the provided directory and TPOT does NOT clean + the caching directory up upon shutdown. If the directory does not exist, TPOT will + create it. + - Memory object: + TPOT uses the instance of joblib.Memory for memory caching, + and TPOT does NOT clean the caching directory up upon shutdown. + - None: + TPOT does not use memory caching. + + preprocessing : bool or BaseEstimator/Pipeline, + EXPERIMENTAL + A pipeline that will be used to preprocess the data before CV. + - bool : If True, will use a default preprocessing pipeline. + - Pipeline : If an instance of a pipeline is given, will use that pipeline as the preprocessing pipeline. + + max_time_seconds : float, default=float("inf") + Maximum time to run the optimization. If none or inf, will run until the end of the generations. + + max_eval_time_seconds : float, default=60*5 + Maximum time to evaluate a single individual. If none or inf, there will be no time limit per evaluation. + + + n_jobs : int, default=1 + Number of processes to run in parallel. + + validation_strategy : str, default='none' + EXPERIMENTAL The validation strategy to use for selecting the final pipeline from the population. TPOT2 may overfit the cross validation score. A second validation set can be used to select the final pipeline. + - 'auto' : Automatically determine the validation strategy based on the dataset shape. + - 'reshuffled' : Use the same data for cross validation and final validation, but with different splits for the folds. This is the default for small datasets. + - 'split' : Use a separate validation set for final validation. Data will be split according to validation_fraction. This is the default for medium datasets. + - 'none' : Do not use a separate validation set for final validation. Select based on the original cross-validation score. This is the default for large datasets. + + validation_fraction : float, default=0.2 + EXPERIMENTAL The fraction of the dataset to use for the validation set when validation_strategy is 'split'. Must be between 0 and 1. + + early_stop : int, default=None + Number of generations without improvement before early stopping. All objectives must have converged within the tolerance for this to be triggered. + + warm_start : bool, default=False + If True, will use the continue the evolutionary algorithm from the last generation of the previous run. + + periodic_checkpoint_folder : str, default=None + Folder to save the population to periodically. If None, no periodic saving will be done. + If provided, training will resume from this checkpoint. + + + verbose : int, default=1 + How much information to print during the optimization process. Higher values include the information from lower values. + 0. nothing + 1. progress bar + + 3. best individual + 4. warnings + >=5. full warnings trace + 6. evaluations progress bar. (Temporary: This used to be 2. Currently, using evaluation progress bar may prevent some instances were we terminate a generation early due to it reaching max_time_seconds in the middle of a generation OR a pipeline failed to be terminated normally and we need to manually terminate it.) + + + memory_limit : str, default="4GB" + Memory limit for each job. See Dask [LocalCluster documentation](https://distributed.dask.org/en/stable/api.html#distributed.Client) for more information. + + client : dask.distributed.Client, default=None + A dask client to use for parallelization. If not None, this will override the n_jobs and memory_limit parameters. If None, will create a new client with num_workers=n_jobs and memory_limit=memory_limit. + + random_state : int, None, default=None + A seed for reproducability of experiments. This value will be passed to numpy.random.default_rng() to create an instnce of the genrator to pass to other classes + + - int + Will be used to create and lock in Generator instance with 'numpy.random.default_rng()' + - None + Will be used to create Generator for 'numpy.random.default_rng()' where a fresh, unpredictable entropy will be pulled from the OS + + allow_inner_regressors : bool, default=True + If True, the search space will include ensembled regressors. + + Attributes + ---------- + + fitted_pipeline_ : GraphPipeline + A fitted instance of the GraphPipeline that inherits from sklearn BaseEstimator. This is fitted on the full X, y passed to fit. + + evaluated_individuals : A pandas data frame containing data for all evaluated individuals in the run. + Columns: + - *objective functions : The first few columns correspond to the passed in scorers and objective functions + - Parents : A tuple containing the indexes of the pipelines used to generate the pipeline of that row. If NaN, this pipeline was generated randomly in the initial population. + - Variation_Function : Which variation function was used to mutate or crossover the parents. If NaN, this pipeline was generated randomly in the initial population. + - Individual : The internal representation of the individual that is used during the evolutionary algorithm. This is not an sklearn BaseEstimator. + - Generation : The generation the pipeline first appeared. + - Pareto_Front : The nondominated front that this pipeline belongs to. 0 means that its scores is not strictly dominated by any other individual. + To save on computational time, the best frontier is updated iteratively each generation. + The pipelines with the 0th pareto front do represent the exact best frontier. However, the pipelines with pareto front >= 1 are only in reference to the other pipelines in the final population. + All other pipelines are set to NaN. + - Instance : The unfitted GraphPipeline BaseEstimator. + - *validation objective functions : Objective function scores evaluated on the validation set. + - Validation_Pareto_Front : The full pareto front calculated on the validation set. This is calculated for all pipelines with Pareto_Front equal to 0. Unlike the Pareto_Front which only calculates the frontier and the final population, the Validation Pareto Front is calculated for all pipelines tested on the validation set. + pareto_front : The same pandas dataframe as evaluated individuals, but containing only the frontier pareto front pipelines. + ''' + + self.search_space = search_space self.scorers = scorers self.scorers_weights = scorers_weights self.cv = cv @@ -73,18 +228,7 @@ def fit(self, X, y): "n_features":X.shape[1], "random_state":self.random_state} - if self.allow_inner_regressors: - search_space = tpot2.search_spaces.pipelines.GraphPipeline( - root_search_space= tpot2.config.get_search_space("regressors", **get_search_space_params), - leaf_search_space = None, - inner_search_space = tpot2.config.get_search_space(["selectors","transformers","regressors","scalers","selectors_regression"],**get_search_space_params), - ) - else: - search_space = tpot2.search_spaces.pipelines.GraphPipeline( - root_search_space= tpot2.config.get_search_space("regressors", **get_search_space_params), - leaf_search_space = None, - inner_search_space = tpot2.config.get_search_space(["selectors","transformers","scalers","selectors_regression"],**get_search_space_params), - ) + search_space = get_default_search_space(self.search_space, classification=True, inner_predictors=self.allow_inner_regressors, **get_search_space_params) super(TPOTRegressor,self).__init__( search_space=search_space, @@ -119,6 +263,7 @@ def fit(self, X, y): class TPOTClassifier(TPOTEstimator): def __init__( self, + search_space = "linear", scorers=['roc_auc_ovr'], scorers_weights=[1], cv = 10, @@ -146,9 +291,160 @@ def __init__( self, ): """ - See TPOTEstimator for documentation - """ + An sklearn baseestimator that uses genetic programming to optimize a classification pipeline. + For more parameters, see the TPOTEstimator class. + + Parameters + ---------- + + search_space : (String, tpot2.search_spaces.SklearnIndividualGenerator) + - String : The default search space to use for the optimization. This can be either "linear" or "graph". If "linear", will use the default linear pipeline search space. If "graph", will use the default graph pipeline search space. + - SklearnIndividualGenerator : The search space to use for the optimization. This should be an instance of a SklearnIndividualGenerator. + The search space to use for the optimization. This should be an instance of a SklearnIndividualGenerator. + TPOT2 has groups of search spaces found in the following folders, tpot2.search_spaces.nodes for the nodes in the pipeline and tpot2.search_spaces.pipelines for the pipeline structure. + + scorers : (list, scorer) + A scorer or list of scorers to be used in the cross-validation process. + see https://scikit-learn.org/stable/modules/model_evaluation.html + + scorers_weights : list + A list of weights to be applied to the scorers during the optimization process. + + classification : bool + If True, the problem is treated as a classification problem. If False, the problem is treated as a regression problem. + Used to determine the CV strategy. + + cv : int, cross-validator + - (int): Number of folds to use in the cross-validation process. By uses the sklearn.model_selection.KFold cross-validator for regression and StratifiedKFold for classification. In both cases, shuffled is set to True. + - (sklearn.model_selection.BaseCrossValidator): A cross-validator to use in the cross-validation process. + - max_depth (int): The maximum depth from any node to the root of the pipelines to be generated. + + other_objective_functions : list, default=[] + A list of other objective functions to apply to the pipeline. The function takes a single parameter for the graphpipeline estimator and returns either a single score or a list of scores. + + other_objective_functions_weights : list, default=[] + A list of weights to be applied to the other objective functions. + + objective_function_names : list, default=None + A list of names to be applied to the objective functions. If None, will use the names of the objective functions. + + bigger_is_better : bool, default=True + If True, the objective function is maximized. If False, the objective function is minimized. Use negative weights to reverse the direction. + + categorical_features : list or None + Categorical columns to inpute and/or one hot encode during the preprocessing step. Used only if preprocessing is not False. + + categorical_features: list or None + Categorical columns to inpute and/or one hot encode during the preprocessing step. Used only if preprocessing is not False. + - None : If None, TPOT2 will automatically use object columns in pandas dataframes as objects for one hot encoding in preprocessing. + - List of categorical features. If X is a dataframe, this should be a list of column names. If X is a numpy array, this should be a list of column indices + + + memory: Memory object or string, default=None + If supplied, pipeline will cache each transformer after calling fit. This feature + is used to avoid computing the fit transformers within a pipeline if the parameters + and input data are identical with another fitted pipeline during optimization process. + - String 'auto': + TPOT uses memory caching with a temporary directory and cleans it up upon shutdown. + - String path of a caching directory + TPOT uses memory caching with the provided directory and TPOT does NOT clean + the caching directory up upon shutdown. If the directory does not exist, TPOT will + create it. + - Memory object: + TPOT uses the instance of joblib.Memory for memory caching, + and TPOT does NOT clean the caching directory up upon shutdown. + - None: + TPOT does not use memory caching. + + preprocessing : bool or BaseEstimator/Pipeline, + EXPERIMENTAL + A pipeline that will be used to preprocess the data before CV. + - bool : If True, will use a default preprocessing pipeline. + - Pipeline : If an instance of a pipeline is given, will use that pipeline as the preprocessing pipeline. + + max_time_seconds : float, default=float("inf") + Maximum time to run the optimization. If none or inf, will run until the end of the generations. + + max_eval_time_seconds : float, default=60*5 + Maximum time to evaluate a single individual. If none or inf, there will be no time limit per evaluation. + + n_jobs : int, default=1 + Number of processes to run in parallel. + + validation_strategy : str, default='none' + EXPERIMENTAL The validation strategy to use for selecting the final pipeline from the population. TPOT2 may overfit the cross validation score. A second validation set can be used to select the final pipeline. + - 'auto' : Automatically determine the validation strategy based on the dataset shape. + - 'reshuffled' : Use the same data for cross validation and final validation, but with different splits for the folds. This is the default for small datasets. + - 'split' : Use a separate validation set for final validation. Data will be split according to validation_fraction. This is the default for medium datasets. + - 'none' : Do not use a separate validation set for final validation. Select based on the original cross-validation score. This is the default for large datasets. + + validation_fraction : float, default=0.2 + EXPERIMENTAL The fraction of the dataset to use for the validation set when validation_strategy is 'split'. Must be between 0 and 1. + + early_stop : int, default=None + Number of generations without improvement before early stopping. All objectives must have converged within the tolerance for this to be triggered. + + warm_start : bool, default=False + If True, will use the continue the evolutionary algorithm from the last generation of the previous run. + + periodic_checkpoint_folder : str, default=None + Folder to save the population to periodically. If None, no periodic saving will be done. + If provided, training will resume from this checkpoint. + + + verbose : int, default=1 + How much information to print during the optimization process. Higher values include the information from lower values. + 0. nothing + 1. progress bar + + 3. best individual + 4. warnings + >=5. full warnings trace + 6. evaluations progress bar. (Temporary: This used to be 2. Currently, using evaluation progress bar may prevent some instances were we terminate a generation early due to it reaching max_time_seconds in the middle of a generation OR a pipeline failed to be terminated normally and we need to manually terminate it.) + + + memory_limit : str, default="4GB" + Memory limit for each job. See Dask [LocalCluster documentation](https://distributed.dask.org/en/stable/api.html#distributed.Client) for more information. + + client : dask.distributed.Client, default=None + A dask client to use for parallelization. If not None, this will override the n_jobs and memory_limit parameters. If None, will create a new client with num_workers=n_jobs and memory_limit=memory_limit. + + random_state : int, None, default=None + A seed for reproducability of experiments. This value will be passed to numpy.random.default_rng() to create an instnce of the genrator to pass to other classes + + - int + Will be used to create and lock in Generator instance with 'numpy.random.default_rng()' + - None + Will be used to create Generator for 'numpy.random.default_rng()' where a fresh, unpredictable entropy will be pulled from the OS + + allow_inner_classifiers : bool, default=True + If True, the search space will include ensembled classifiers. + + Attributes + ---------- + + fitted_pipeline_ : GraphPipeline + A fitted instance of the GraphPipeline that inherits from sklearn BaseEstimator. This is fitted on the full X, y passed to fit. + + evaluated_individuals : A pandas data frame containing data for all evaluated individuals in the run. + Columns: + - *objective functions : The first few columns correspond to the passed in scorers and objective functions + - Parents : A tuple containing the indexes of the pipelines used to generate the pipeline of that row. If NaN, this pipeline was generated randomly in the initial population. + - Variation_Function : Which variation function was used to mutate or crossover the parents. If NaN, this pipeline was generated randomly in the initial population. + - Individual : The internal representation of the individual that is used during the evolutionary algorithm. This is not an sklearn BaseEstimator. + - Generation : The generation the pipeline first appeared. + - Pareto_Front : The nondominated front that this pipeline belongs to. 0 means that its scores is not strictly dominated by any other individual. + To save on computational time, the best frontier is updated iteratively each generation. + The pipelines with the 0th pareto front do represent the exact best frontier. However, the pipelines with pareto front >= 1 are only in reference to the other pipelines in the final population. + All other pipelines are set to NaN. + - Instance : The unfitted GraphPipeline BaseEstimator. + - *validation objective functions : Objective function scores evaluated on the validation set. + - Validation_Pareto_Front : The full pareto front calculated on the validation set. This is calculated for all pipelines with Pareto_Front equal to 0. Unlike the Pareto_Front which only calculates the frontier and the final population, the Validation Pareto Front is calculated for all pipelines tested on the validation set. + + pareto_front : The same pandas dataframe as evaluated individuals, but containing only the frontier pareto front pipelines. + """ + self.search_space = search_space self.scorers = scorers self.scorers_weights = scorers_weights self.cv = cv @@ -185,18 +481,7 @@ def fit(self, X, y): "n_features":X.shape[1], "random_state":self.random_state} - if self.allow_inner_classifiers: - search_space = tpot2.search_spaces.pipelines.GraphPipeline( - root_search_space= tpot2.config.get_search_space("classifiers", **get_search_space_params), - leaf_search_space = None, - inner_search_space = tpot2.config.get_search_space(["selectors","transformers","classifiers", "scalers","selectors_classification"], **get_search_space_params), - ) - else: - search_space = tpot2.search_spaces.pipelines.GraphPipeline( - root_search_space= tpot2.config.get_search_space("classifiers", **get_search_space_params), - leaf_search_space = None, - inner_search_space = tpot2.config.get_search_space(["selectors","transformers","scalers","selectors_classification"], **get_search_space_params), - ) + search_space = get_default_search_space(self.search_space, classification=True, inner_predictors=self.allow_inner_classifiers, **get_search_space_params) super(TPOTClassifier,self).__init__(