From 08fe0cb1dbfe55ffab3c84d66d0d9a40b8229982 Mon Sep 17 00:00:00 2001 From: Felix Mohr Date: Tue, 8 Oct 2024 00:16:11 +0200 Subject: [PATCH] fixed issues with configspace (#70) * fixed issues with configspace * solved hyperparameter issues * solved flake8 issue * added TurboEvaluator to speed up search space unit tests * changed scoring argument the semantics is now that a string or (name, scoring) tuple is expected * fixed flake8 issues --------- Co-authored-by: felix --- python/naiveautoml/_interfaces.py | 14 +- .../algorithm_selection/_sklearn_factory.py | 2 +- python/naiveautoml/naiveautoml.py | 7 +- .../searchspace-classification.json | 204 +- .../naiveautoml/searchspace-regression.json | 194 +- python/setup.py | 8 +- python/test/test_naiveautoml.py | 161 +- python/usage-example.ipynb | 2723 ++++++++--------- 8 files changed, 1580 insertions(+), 1733 deletions(-) diff --git a/python/naiveautoml/_interfaces.py b/python/naiveautoml/_interfaces.py index a0c71ad..69e729e 100644 --- a/python/naiveautoml/_interfaces.py +++ b/python/naiveautoml/_interfaces.py @@ -4,7 +4,7 @@ import numpy as np from scipy.sparse import issparse, spmatrix from ConfigSpace import ConfigurationSpace -from sklearn.metrics import get_scorer, make_scorer +from sklearn.metrics import get_scorer import pandas as pd import time from tqdm import tqdm @@ -43,8 +43,16 @@ def __init__(self, # configure scorings def prepare_scoring(scoring): + + is_str = isinstance(scoring, str) + is_tuple = isinstance(scoring, tuple) + if not is_str and not is_tuple: + raise ValueError(f"scoring must be either str or tuple but is {type(scoring)}") + if is_tuple and len(scoring) != 2: + raise ValueError("if scoring is a tuple, it must contain 2 elements, a name and the scoring function") + out = { - "name": scoring if isinstance(scoring, str) else scoring["name"] + "name": scoring if isinstance(scoring, str) else scoring[0] } if type_of_target(self._y) == "multilabel-indicator": out["fun"] = None @@ -52,7 +60,7 @@ def prepare_scoring(scoring): if isinstance(scoring, str): out["fun"] = get_scorer(scoring) else: - out["fun"] = make_scorer(**{key: val for key, val in scoring.items() if key != "name"}) + out["fun"] = scoring[1] return out if scoring is None: diff --git a/python/naiveautoml/algorithm_selection/_sklearn_factory.py b/python/naiveautoml/algorithm_selection/_sklearn_factory.py index afac376..897372e 100644 --- a/python/naiveautoml/algorithm_selection/_sklearn_factory.py +++ b/python/naiveautoml/algorithm_selection/_sklearn_factory.py @@ -663,7 +663,7 @@ def score_func(X, y): return sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis(**params) if clazz == sklearn.linear_model.LogisticRegression: - params["dual"] = check_for_bool(params["dual"]) + # params["dual"] = check_for_bool(params["dual"]) -- disabled now return sklearn.linear_model.LogisticRegression(**params) if clazz == sklearn.neural_network.MLPClassifier: diff --git a/python/naiveautoml/naiveautoml.py b/python/naiveautoml/naiveautoml.py index e6f18a2..aa21df8 100644 --- a/python/naiveautoml/naiveautoml.py +++ b/python/naiveautoml/naiveautoml.py @@ -234,8 +234,11 @@ def fit(self, X, y, categorical_features=None): # get candidate descriptor as_result_for_best_candidate = relevant_history.sort_values(self.task.scoring["name"]).iloc[-1] + config_space = self.algorithm_selector.get_config_space(as_result_for_best_candidate) - if ( + if len(config_space) == 0: + self.logger.info(f"The selected algorithms {as_result_for_best_candidate} have no hyperparameters.") + elif ( deadline is None or deadline is not None and deadline - time.time() >= as_result_for_best_candidate["runtime"] + 5 ): @@ -244,7 +247,7 @@ def fit(self, X, y, categorical_features=None): self.hp_optimizer.reset( task=self.task, runtime_of_default_config=as_result_for_best_candidate["runtime"], - config_space=self.algorithm_selector.get_config_space(as_result_for_best_candidate), + config_space=config_space, history_descriptor_creation_fun=lambda hp_config: self.algorithm_selector.create_history_descriptor( as_result_for_best_candidate, hp_config diff --git a/python/naiveautoml/searchspace-classification.json b/python/naiveautoml/searchspace-classification.json index 88364c7..3aa2c4a 100644 --- a/python/naiveautoml/searchspace-classification.json +++ b/python/naiveautoml/searchspace-classification.json @@ -42,7 +42,7 @@ "log": false, "lower": 10, "upper": 2000, - "default": 1000 + "default_value": 1000 }, { "name": "output_distribution", @@ -51,7 +51,7 @@ "uniform", "normal" ], - "default": "uniform", + "default_value": "uniform", "probabilities": null } ], @@ -71,7 +71,7 @@ "log": false, "lower": 0.7, "upper": 0.999, - "default": 0.75 + "default_value": 0.75 }, { "name": "q_min", @@ -79,7 +79,7 @@ "log": false, "lower": 0.001, "upper": 0.3, - "default": 0.25 + "default_value": 0.25 } ], "conditions": [], @@ -124,7 +124,7 @@ "parallel", "deflation" ], - "default": "parallel", + "default_value": "parallel", "probabilities": null }, { @@ -135,7 +135,7 @@ "exp", "cube" ], - "default": "logcosh", + "default_value": "logcosh", "probabilities": null }, { @@ -146,7 +146,7 @@ "arbitrary-variance", "unit-variance" ], - "default": "False", + "default_value": "False", "probabilities": null }, { @@ -155,7 +155,7 @@ "log": false, "lower": 10, "upper": 2000, - "default": 100 + "default_value": 100 } ], "conditions": [ @@ -185,7 +185,7 @@ "manhattan", "cosine" ], - "default": "euclidean", + "default_value": "euclidean", "probabilities": null }, { @@ -196,7 +196,7 @@ "complete", "average" ], - "default": "ward", + "default_value": "ward", "probabilities": null }, { @@ -205,7 +205,7 @@ "log": false, "lower": 2, "upper": 400, - "default": 25 + "default_value": 25 }, { "name": "pooling_func", @@ -215,7 +215,7 @@ "median", "max" ], - "default": "mean", + "default_value": "mean", "probabilities": null } ], @@ -260,7 +260,7 @@ "sigmoid", "cosine" ], - "default": "rbf", + "default_value": "rbf", "probabilities": null }, { @@ -269,7 +269,7 @@ "log": false, "lower": 10, "upper": 2000, - "default": 100 + "default_value": 100 }, { "name": "coef0", @@ -277,7 +277,7 @@ "log": false, "lower": -1.0, "upper": 1.0, - "default": 0.0 + "default_value": 0.0 }, { "name": "degree", @@ -285,7 +285,7 @@ "log": false, "lower": 2, "upper": 5, - "default": 3 + "default_value": 3 }, { "name": "gamma", @@ -293,7 +293,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.01 + "default_value": 0.01 } ], "conditions": [ @@ -337,7 +337,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "n_components", @@ -345,7 +345,7 @@ "log": true, "lower": 50, "upper": 10000, - "default": 100 + "default_value": 100 } ], "conditions": [], @@ -368,7 +368,7 @@ "cosine", "chi2" ], - "default": "rbf", + "default_value": "rbf", "probabilities": null }, { @@ -377,7 +377,7 @@ "log": true, "lower": 50, "upper": 10000, - "default": 100 + "default_value": 100 }, { "name": "coef0", @@ -385,7 +385,7 @@ "log": false, "lower": -1.0, "upper": 1.0, - "default": 0.0 + "default_value": 0.0 }, { "name": "degree", @@ -393,7 +393,7 @@ "log": false, "lower": 2, "upper": 5, - "default": 3 + "default_value": 3 }, { "name": "gamma", @@ -401,7 +401,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.1 + "default_value": 0.1 } ], "conditions": [ @@ -447,7 +447,7 @@ "log": false, "lower": 0.5, "upper": 0.9999, - "default": 0.9999 + "default_value": 0.9999 }, { "name": "whiten", @@ -456,7 +456,7 @@ "False", "True" ], - "default": "False", + "default_value": "False", "probabilities": null } ], @@ -476,7 +476,7 @@ "log": false, "lower": 2, "upper": 3, - "default": 2 + "default_value": 2 }, { "name": "include_bias", @@ -485,7 +485,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -495,7 +495,7 @@ "False", "True" ], - "default": "False", + "default_value": "False", "probabilities": null } ], @@ -515,7 +515,7 @@ "log": false, "lower": 1.0, "upper": 99.0, - "default": 50.0 + "default_value": 50.0 }, { "name": "score_func", @@ -525,7 +525,7 @@ "f_classif", "mutual_info" ], - "default": "chi2", + "default_value": "chi2", "probabilities": null } ], @@ -545,7 +545,7 @@ "log": false, "lower": 0.01, "upper": 0.5, - "default": 0.1 + "default_value": 0.1 }, { "name": "score_func", @@ -555,7 +555,7 @@ "f_classif", "mutual_info_classif" ], - "default": "chi2", + "default_value": "chi2", "probabilities": null }, { @@ -566,7 +566,7 @@ "fdr", "fwe" ], - "default": "fpr", + "default_value": "fpr", "probabilities": null } ], @@ -599,7 +599,7 @@ "True", "False" ], - "default": "False", + "default_value": "False", "probabilities": null }, { @@ -609,7 +609,7 @@ "gini", "entropy" ], - "default": "gini", + "default_value": "gini", "probabilities": null }, { @@ -623,7 +623,7 @@ "log": false, "lower": 0.0, "upper": 1.0, - "default": 0.5 + "default_value": 0.5 }, { "name": "max_leaf_nodes", @@ -641,7 +641,7 @@ "log": false, "lower": 1, "upper": 20, - "default": 1 + "default_value": 1 }, { "name": "min_samples_split", @@ -649,7 +649,7 @@ "log": false, "lower": 2, "upper": 20, - "default": 2 + "default_value": 2 }, { "name": "min_weight_fraction_leaf", @@ -674,7 +674,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -684,7 +684,7 @@ "gini", "entropy" ], - "default": "gini", + "default_value": "gini", "probabilities": null }, { @@ -698,7 +698,7 @@ "log": false, "lower": 0.0, "upper": 1.0, - "default": 0.5 + "default_value": 0.5 }, { "name": "max_leaf_nodes", @@ -716,7 +716,7 @@ "log": false, "lower": 1, "upper": 20, - "default": 1 + "default_value": 1 }, { "name": "min_samples_split", @@ -724,7 +724,7 @@ "log": false, "lower": 2, "upper": 20, - "default": 2 + "default_value": 2 }, { "name": "min_weight_fraction_leaf", @@ -750,7 +750,7 @@ "valid", "train" ], - "default": "off", + "default_value": "off", "probabilities": null }, { @@ -759,7 +759,7 @@ "log": true, "lower": 1e-10, "upper": 1.0, - "default": 1e-10 + "default_value": 1e-10 }, { "name": "learning_rate", @@ -767,7 +767,7 @@ "log": true, "lower": 0.01, "upper": 1.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "loss", @@ -790,7 +790,7 @@ "log": true, "lower": 3, "upper": 2047, - "default": 31 + "default_value": 31 }, { "name": "min_samples_leaf", @@ -798,7 +798,7 @@ "log": true, "lower": 1, "upper": 200, - "default": 20 + "default_value": 20 }, { "name": "scoring", @@ -816,7 +816,7 @@ "log": false, "lower": 1, "upper": 20, - "default": 10 + "default_value": 10 }, { "name": "validation_fraction", @@ -824,7 +824,7 @@ "log": false, "lower": 0.01, "upper": 0.4, - "default": 0.1 + "default_value": 0.1 } ], "conditions": [ @@ -859,7 +859,7 @@ "log": true, "lower": 0.01, "upper": 100.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "fit_prior", @@ -868,7 +868,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null } ], @@ -889,7 +889,7 @@ "gini", "entropy" ], - "default": "gini", + "default_value": "gini", "probabilities": null }, { @@ -898,7 +898,7 @@ "log": false, "lower": 0.0, "upper": 2.0, - "default": 0.5 + "default_value": 0.5 }, { "name": "max_features", @@ -921,7 +921,7 @@ "log": false, "lower": 1, "upper": 20, - "default": 1 + "default_value": 1 }, { "name": "min_samples_split", @@ -929,7 +929,7 @@ "log": false, "lower": 2, "upper": 20, - "default": 2 + "default_value": 2 }, { "name": "min_weight_fraction_leaf", @@ -963,7 +963,7 @@ "log": true, "lower": 1, "upper": 100, - "default": 1 + "default_value": 1 }, { "name": "p", @@ -972,7 +972,7 @@ 1, 2 ], - "default": 2, + "default_value": 2, "probabilities": null }, { @@ -982,7 +982,7 @@ "uniform", "distance" ], - "default": "uniform", + "default_value": "uniform", "probabilities": null } ], @@ -1004,7 +1004,7 @@ "auto", "manual" ], - "default": "None", + "default_value": "None", "probabilities": null }, { @@ -1013,7 +1013,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.0001 + "default_value": 0.0001 }, { "name": "shrinkage_factor", @@ -1021,7 +1021,7 @@ "log": false, "lower": 0.0, "upper": 1.0, - "default": 0.5 + "default_value": 0.5 } ], "conditions": [ @@ -1047,7 +1047,7 @@ "log": false, "lower": 0.0, "upper": 1.0, - "default": 0.0 + "default_value": 0.0 } ], "conditions": [], @@ -1066,7 +1066,7 @@ "log": true, "lower": 0.03125, "upper": 32768.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "gamma", @@ -1074,7 +1074,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "kernel", @@ -1093,7 +1093,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -1102,7 +1102,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.001 + "default_value": 0.001 } ], "conditions": [], @@ -1121,7 +1121,7 @@ "log": true, "lower": 0.03125, "upper": 32768.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "gamma", @@ -1129,7 +1129,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "kernel", @@ -1148,7 +1148,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -1157,7 +1157,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.001 + "default_value": 0.001 } ], "conditions": [], @@ -1176,7 +1176,7 @@ "log": true, "lower": 0.03125, "upper": 32768.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "coef0", @@ -1184,7 +1184,7 @@ "log": false, "lower": -1.0, "upper": 1.0, - "default": 0.0 + "default_value": 0.0 }, { "name": "degree", @@ -1192,7 +1192,7 @@ "log": false, "lower": 2, "upper": 5, - "default": 3 + "default_value": 3 }, { "name": "gamma", @@ -1200,7 +1200,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "kernel", @@ -1219,7 +1219,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -1228,7 +1228,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.001 + "default_value": 0.001 } ], "conditions": [], @@ -1247,7 +1247,7 @@ "log": true, "lower": 0.03125, "upper": 32768.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "coef0", @@ -1255,7 +1255,7 @@ "log": false, "lower": -1.0, "upper": 1.0, - "default": 0.0 + "default_value": 0.0 }, { "name": "gamma", @@ -1263,7 +1263,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "kernel", @@ -1282,7 +1282,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -1291,7 +1291,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.001 + "default_value": 0.001 } ], "conditions": [], @@ -1304,33 +1304,13 @@ "class": "sklearn.linear_model.LogisticRegression", "params": { "hyperparameters": [ - { - "name": "penalty", - "type": "categorical", - "choices": [ - "l1", - "l2", - "elasticnet", - "None" - ], - "default": "l2" - }, - { - "name": "dual", - "type": "categorical", - "choices": [ - "True", - "False" - ], - "default": "False" - }, { "name": "C", "type": "uniform_float", "log": true, "lower": 0.03125, "upper": 32768.0, - "default": 1.0 + "default_value": 1.0 } ], "conditions": [], @@ -1348,7 +1328,7 @@ "tanh", "relu" ], - "default": "relu", + "default_value": "relu", "probabilities": null }, { @@ -1357,7 +1337,7 @@ "log": true, "lower": 1e-07, "upper": 0.1, - "default": 0.0001 + "default_value": 0.0001 }, { "name": "batch_size", @@ -1381,7 +1361,7 @@ "valid", "train" ], - "default": "valid", + "default_value": "valid", "probabilities": null }, { @@ -1395,7 +1375,7 @@ "log": false, "lower": 1, "upper": 3, - "default": 1 + "default_value": 1 }, { "name": "learning_rate_init", @@ -1403,7 +1383,7 @@ "log": true, "lower": 0.0001, "upper": 0.5, - "default": 0.001 + "default_value": 0.001 }, { "name": "n_iter_no_change", @@ -1416,7 +1396,7 @@ "log": true, "lower": 16, "upper": 264, - "default": 32 + "default_value": 32 }, { "name": "shuffle", @@ -1464,7 +1444,7 @@ "log": true, "lower": 0.01, "upper": 100.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "fit_prior", @@ -1473,7 +1453,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null } ], diff --git a/python/naiveautoml/searchspace-regression.json b/python/naiveautoml/searchspace-regression.json index 9f29b7b..67304af 100644 --- a/python/naiveautoml/searchspace-regression.json +++ b/python/naiveautoml/searchspace-regression.json @@ -42,7 +42,7 @@ "log": false, "lower": 10, "upper": 2000, - "default": 1000 + "default_value": 1000 }, { "name": "output_distribution", @@ -51,7 +51,7 @@ "uniform", "normal" ], - "default": "uniform", + "default_value": "uniform", "probabilities": null } ], @@ -71,7 +71,7 @@ "log": false, "lower": 0.7, "upper": 0.999, - "default": 0.75 + "default_value": 0.75 }, { "name": "q_min", @@ -79,7 +79,7 @@ "log": false, "lower": 0.001, "upper": 0.3, - "default": 0.25 + "default_value": 0.25 } ], "conditions": [], @@ -124,7 +124,7 @@ "parallel", "deflation" ], - "default": "parallel", + "default_value": "parallel", "probabilities": null }, { @@ -135,7 +135,7 @@ "exp", "cube" ], - "default": "logcosh", + "default_value": "logcosh", "probabilities": null }, { @@ -146,7 +146,7 @@ "arbitrary-variance", "unit-variance" ], - "default": "False", + "default_value": "False", "probabilities": null }, { @@ -155,7 +155,7 @@ "log": false, "lower": 10, "upper": 2000, - "default": 100 + "default_value": 100 } ], "conditions": [ @@ -185,7 +185,7 @@ "l1", "l2" ], - "default": "euclidean", + "default_value": "euclidean", "probabilities": null }, { @@ -196,7 +196,7 @@ "complete", "average" ], - "default": "ward", + "default_value": "ward", "probabilities": null }, { @@ -205,7 +205,7 @@ "log": false, "lower": 2, "upper": 400, - "default": 25 + "default_value": 25 }, { "name": "pooling_func", @@ -215,7 +215,7 @@ "median", "max" ], - "default": "mean", + "default_value": "mean", "probabilities": null } ], @@ -260,7 +260,7 @@ "sigmoid", "cosine" ], - "default": "rbf", + "default_value": "rbf", "probabilities": null }, { @@ -269,7 +269,7 @@ "log": false, "lower": 10, "upper": 2000, - "default": 100 + "default_value": 100 }, { "name": "coef0", @@ -277,7 +277,7 @@ "log": false, "lower": -1.0, "upper": 1.0, - "default": 0.0 + "default_value": 0.0 }, { "name": "degree", @@ -285,7 +285,7 @@ "log": false, "lower": 2, "upper": 5, - "default": 3 + "default_value": 3 }, { "name": "gamma", @@ -293,7 +293,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.01 + "default_value": 0.01 } ], "conditions": [ @@ -337,7 +337,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "n_components", @@ -345,7 +345,7 @@ "log": true, "lower": 50, "upper": 10000, - "default": 100 + "default_value": 100 } ], "conditions": [], @@ -368,7 +368,7 @@ "cosine", "chi2" ], - "default": "rbf", + "default_value": "rbf", "probabilities": null }, { @@ -377,7 +377,7 @@ "log": true, "lower": 50, "upper": 10000, - "default": 100 + "default_value": 100 }, { "name": "coef0", @@ -385,7 +385,7 @@ "log": false, "lower": -1.0, "upper": 1.0, - "default": 0.0 + "default_value": 0.0 }, { "name": "degree", @@ -393,7 +393,7 @@ "log": false, "lower": 2, "upper": 5, - "default": 3 + "default_value": 3 }, { "name": "gamma", @@ -401,7 +401,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.1 + "default_value": 0.1 } ], "conditions": [ @@ -447,7 +447,7 @@ "log": false, "lower": 0.5, "upper": 0.9999, - "default": 0.9999 + "default_value": 0.9999 }, { "name": "whiten", @@ -456,7 +456,7 @@ "False", "True" ], - "default": "False", + "default_value": "False", "probabilities": null } ], @@ -476,7 +476,7 @@ "log": false, "lower": 2, "upper": 3, - "default": 2 + "default_value": 2 }, { "name": "include_bias", @@ -485,7 +485,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -495,7 +495,7 @@ "False", "True" ], - "default": "False", + "default_value": "False", "probabilities": null } ], @@ -521,7 +521,7 @@ "True", "False" ], - "default": "False", + "default_value": "False", "probabilities": null }, { @@ -533,7 +533,7 @@ "absolute_error", "squared_error" ], - "default": "squared_error", + "default_value": "squared_error", "probabilities": null }, { @@ -547,7 +547,7 @@ "log": false, "lower": 0.1, "upper": 1.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "max_leaf_nodes", @@ -565,7 +565,7 @@ "log": false, "lower": 1, "upper": 20, - "default": 1 + "default_value": 1 }, { "name": "min_samples_split", @@ -573,7 +573,7 @@ "log": false, "lower": 2, "upper": 20, - "default": 2 + "default_value": 2 }, { "name": "min_weight_fraction_leaf", @@ -598,7 +598,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -610,7 +610,7 @@ "poisson", "absolute_error" ], - "default": "squared_error", + "default_value": "squared_error", "probabilities": null }, { @@ -624,7 +624,7 @@ "log": false, "lower": 0.1, "upper": 1.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "max_leaf_nodes", @@ -642,7 +642,7 @@ "log": false, "lower": 1, "upper": 20, - "default": 1 + "default_value": 1 }, { "name": "min_samples_split", @@ -650,7 +650,7 @@ "log": false, "lower": 2, "upper": 20, - "default": 2 + "default_value": 2 }, { "name": "min_weight_fraction_leaf", @@ -676,7 +676,7 @@ "valid", "train" ], - "default": "off", + "default_value": "off", "probabilities": null }, { @@ -685,7 +685,7 @@ "log": true, "lower": 1e-10, "upper": 1.0, - "default": 1e-10 + "default_value": 1e-10 }, { "name": "learning_rate", @@ -693,7 +693,7 @@ "log": true, "lower": 0.01, "upper": 1.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "loss", @@ -705,7 +705,7 @@ "gamma", "squared_error" ], - "default": "squared_error", + "default_value": "squared_error", "probabilities": null }, { @@ -724,7 +724,7 @@ "log": true, "lower": 3, "upper": 2047, - "default": 31 + "default_value": 31 }, { "name": "min_samples_leaf", @@ -732,7 +732,7 @@ "log": true, "lower": 1, "upper": 200, - "default": 20 + "default_value": 20 }, { "name": "scoring", @@ -750,7 +750,7 @@ "log": false, "lower": 1, "upper": 20, - "default": 10 + "default_value": 10 }, { "name": "validation_fraction", @@ -758,7 +758,7 @@ "log": false, "lower": 0.01, "upper": 0.4, - "default": 0.1 + "default_value": 0.1 }, { "name": "quantile", @@ -766,7 +766,7 @@ "log": false, "lower": 0.01, "upper": 0.99, - "default": 0.5 + "default_value": 0.5 } ], "conditions": [ @@ -810,7 +810,7 @@ "absolute_error", "squared_error" ], - "default": "squared_error", + "default_value": "squared_error", "probabilities": null }, { @@ -819,7 +819,7 @@ "log": false, "lower": 0.0, "upper": 2.0, - "default": 0.5 + "default_value": 0.5 }, { "name": "max_features", @@ -842,7 +842,7 @@ "log": false, "lower": 1, "upper": 20, - "default": 1 + "default_value": 1 }, { "name": "min_samples_split", @@ -850,7 +850,7 @@ "log": false, "lower": 2, "upper": 20, - "default": 2 + "default_value": 2 }, { "name": "min_weight_fraction_leaf", @@ -874,7 +874,7 @@ "log": false, "lower": 1e-10, "upper": 0.001, - "default": 1e-06 + "default_value": 1e-06 }, { "name": "alpha_2", @@ -882,7 +882,7 @@ "log": true, "lower": 1e-10, "upper": 0.001, - "default": 1e-06 + "default_value": 1e-06 }, { "name": "fit_intercept", @@ -895,7 +895,7 @@ "log": true, "lower": 1e-10, "upper": 0.001, - "default": 1e-06 + "default_value": 1e-06 }, { "name": "lambda_2", @@ -903,10 +903,10 @@ "log": true, "lower": 1e-10, "upper": 0.001, - "default": 1e-06 + "default_value": 1e-06 }, { - "name": "n_iter", + "name": "max_iter", "type": "constant", "value": 300 }, @@ -916,7 +916,7 @@ "log": true, "lower": 1000.0, "upper": 100000.0, - "default": 10000.0 + "default_value": 10000.0 }, { "name": "tol", @@ -924,7 +924,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.001 + "default_value": 0.001 } ], "conditions": [], @@ -943,7 +943,7 @@ "log": true, "lower": 1e-10, "upper": 1.0, - "default": 1e-08 + "default_value": 1e-08 }, { "name": "thetaL", @@ -951,7 +951,7 @@ "log": true, "lower": 1e-10, "upper": 0.001, - "default": 1e-06 + "default_value": 1e-06 }, { "name": "thetaU", @@ -959,7 +959,7 @@ "log": true, "lower": 1.0, "upper": 100000.0, - "default": 100000.0 + "default_value": 100000.0 } ], "conditions": [], @@ -978,7 +978,7 @@ "log": true, "lower": 1, "upper": 100, - "default": 1 + "default_value": 1 }, { "name": "p", @@ -987,7 +987,7 @@ 1, 2 ], - "default": 2, + "default_value": 2, "probabilities": null }, { @@ -997,7 +997,7 @@ "uniform", "distance" ], - "default": "uniform", + "default_value": "uniform", "probabilities": null } ], @@ -1017,7 +1017,7 @@ "log": true, "lower": 0.03125, "upper": 32768.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "dual", @@ -1030,7 +1030,7 @@ "log": true, "lower": 0.001, "upper": 1.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "fit_intercept", @@ -1049,7 +1049,7 @@ "epsilon_insensitive", "squared_epsilon_insensitive" ], - "default": "squared_epsilon_insensitive", + "default_value": "squared_epsilon_insensitive", "probabilities": null }, { @@ -1058,7 +1058,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.0001 + "default_value": 0.0001 } ], "conditions": [], @@ -1094,7 +1094,7 @@ "log": true, "lower": 0.01, "upper": 2.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "loss", @@ -1104,7 +1104,7 @@ "square", "exponential" ], - "default": "linear", + "default_value": "linear", "probabilities": null }, { @@ -1113,7 +1113,7 @@ "log": false, "lower": 1, "upper": 10, - "default": 1 + "default_value": 1 }, { "name": "n_estimators", @@ -1121,7 +1121,7 @@ "log": false, "lower": 50, "upper": 500, - "default": 50 + "default_value": 50 } ], "conditions": [], @@ -1140,7 +1140,7 @@ "log": true, "lower": 0.03125, "upper": 32768.0, - "default": 1.0 + "default_value": 1.0 }, { "name": "epsilon", @@ -1148,7 +1148,7 @@ "log": true, "lower": 0.001, "upper": 1.0, - "default": 0.1 + "default_value": 0.1 }, { "name": "kernel", @@ -1159,7 +1159,7 @@ "rbf", "sigmoid" ], - "default": "rbf", + "default_value": "rbf", "probabilities": null }, { @@ -1174,7 +1174,7 @@ "True", "False" ], - "default": "True", + "default_value": "True", "probabilities": null }, { @@ -1183,7 +1183,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.001 + "default_value": 0.001 }, { "name": "coef0", @@ -1191,7 +1191,7 @@ "log": false, "lower": -1.0, "upper": 1.0, - "default": 0.0 + "default_value": 0.0 }, { "name": "degree", @@ -1199,7 +1199,7 @@ "log": false, "lower": 2, "upper": 5, - "default": 3 + "default_value": 3 }, { "name": "gamma", @@ -1207,7 +1207,7 @@ "log": true, "lower": 3.0517578125e-05, "upper": 8.0, - "default": 0.1 + "default_value": 0.1 } ], "conditions": [ @@ -1256,7 +1256,7 @@ "tanh", "relu" ], - "default": "tanh", + "default_value": "tanh", "probabilities": null }, { @@ -1265,7 +1265,7 @@ "log": true, "lower": 1e-07, "upper": 0.1, - "default": 0.0001 + "default_value": 0.0001 }, { "name": "batch_size", @@ -1289,7 +1289,7 @@ "valid", "train" ], - "default": "valid", + "default_value": "valid", "probabilities": null }, { @@ -1303,7 +1303,7 @@ "log": false, "lower": 1, "upper": 3, - "default": 1 + "default_value": 1 }, { "name": "learning_rate_init", @@ -1311,7 +1311,7 @@ "log": true, "lower": 0.0001, "upper": 0.5, - "default": 0.001 + "default_value": 0.001 }, { "name": "n_iter_no_change", @@ -1324,7 +1324,7 @@ "log": true, "lower": 16, "upper": 264, - "default": 32 + "default_value": 32 }, { "name": "shuffle", @@ -1372,7 +1372,7 @@ "log": true, "lower": 1e-07, "upper": 0.1, - "default": 0.0001 + "default_value": 0.0001 }, { "name": "average", @@ -1381,7 +1381,7 @@ "False", "True" ], - "default": "False", + "default_value": "False", "probabilities": null }, { @@ -1397,7 +1397,7 @@ "invscaling", "constant" ], - "default": "invscaling", + "default_value": "invscaling", "probabilities": null }, { @@ -1409,7 +1409,7 @@ "epsilon_insensitive", "squared_epsilon_insensitive" ], - "default": "squared_error", + "default_value": "squared_error", "probabilities": null }, { @@ -1420,7 +1420,7 @@ "l2", "elasticnet" ], - "default": "l2", + "default_value": "l2", "probabilities": null }, { @@ -1429,7 +1429,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.0001 + "default_value": 0.0001 }, { "name": "epsilon", @@ -1437,7 +1437,7 @@ "log": true, "lower": 1e-05, "upper": 0.1, - "default": 0.1 + "default_value": 0.1 }, { "name": "eta0", @@ -1445,7 +1445,7 @@ "log": true, "lower": 1e-07, "upper": 0.1, - "default": 0.01 + "default_value": 0.01 }, { "name": "l1_ratio", @@ -1453,7 +1453,7 @@ "log": true, "lower": 1e-09, "upper": 1.0, - "default": 0.15 + "default_value": 0.15 }, { "name": "power_t", @@ -1461,7 +1461,7 @@ "log": false, "lower": 1e-05, "upper": 1.0, - "default": 0.25 + "default_value": 0.25 } ], "conditions": [ diff --git a/python/setup.py b/python/setup.py index b17f694..c671b1e 100644 --- a/python/setup.py +++ b/python/setup.py @@ -4,7 +4,7 @@ setup( name = 'naiveautoml', packages = find_packages(exclude=["test"]), - version = '0.1.3', + version = '0.1.5', license='MIT', description = 'Fast and Timeout-Free Automated Machine Learning for Multi-Class classification, Multi-Label classification, and regression.', author = 'Felix Mohr', @@ -12,11 +12,11 @@ url = 'https://github.com/fmohr/naiveautoml', keywords = ['AutoML', 'sklearn', 'naive', 'simple', 'multi-class', 'multi-label', 'regression', 'no timeouts'], install_requires=[ - 'numpy==1.26.4', + 'numpy<2', 'pandas', - 'scikit-learn==1.4.2', + 'scikit-learn==1.5.2', 'scikit-multilearn==0.2.0', - 'configspace<0.7.1', + 'configspace==1.2.0', 'scipy', 'pynisher', 'psutil', diff --git a/python/test/test_naiveautoml.py b/python/test/test_naiveautoml.py index 50306e6..e057451 100644 --- a/python/test/test_naiveautoml.py +++ b/python/test/test_naiveautoml.py @@ -1,7 +1,19 @@ import logging import pytest -from sklearn.metrics import get_scorer +from sklearn.metrics import get_scorer, make_scorer +from sklearn.ensemble import ( + HistGradientBoostingClassifier, + HistGradientBoostingRegressor, + RandomForestClassifier, + RandomForestRegressor, + ExtraTreesClassifier, + ExtraTreesRegressor, + AdaBoostClassifier, + AdaBoostRegressor +) +from sklearn.gaussian_process import GaussianProcessRegressor +from sklearn.neural_network import MLPClassifier, MLPRegressor import naiveautoml import numpy as np @@ -56,6 +68,55 @@ def evaluate_nb_best(pl, X, y, scoring_functions): ) +class TurboEvaluator(Callable): + + def __init__(self): + self.history = [] + + def reset(self): + self.history = [] + + def __call__(self, pl, X, y, scoring_functions): + learner = pl.steps[-1][1] + if isinstance(learner, tuple([ + HistGradientBoostingClassifier, + HistGradientBoostingRegressor, + RandomForestClassifier, + RandomForestRegressor, + ExtraTreesClassifier, + ExtraTreesRegressor, + AdaBoostClassifier, + AdaBoostRegressor + ])): + learner.n_estimators = 2 + if isinstance(learner, tuple([ + HistGradientBoostingClassifier, + HistGradientBoostingRegressor + ])): + learner.max_iter = 10 + + elif isinstance(learner, (MLPClassifier, MLPRegressor)): + learner.max_iter = 2 + + if isinstance(learner, GaussianProcessRegressor): + learner.n_restarts_optimizer=1 + + + X_train, X_val, y_train, y_val = sklearn.model_selection.train_test_split(X, y, train_size=80, test_size=50) + learner = sklearn.base.clone(pl).fit(X_train, y_train) + results = { + s["name"]: s["fun"](learner, X_val, y_val) + for s in scoring_functions + } + evaluation_report = { + s["name"]: {} for s in scoring_functions + } + return results, evaluation_report + + def update(self, pl, results): + self.history.append([pl, results]) + + class TestNaiveAutoML(unittest.TestCase): @staticmethod @@ -272,37 +333,39 @@ def test_constant_algorithms_in_hpo_phase(self): X, y = get_dataset(61) # run naml - np.random.seed(round(time.time())) + np.random.seed(0)#round(time.time())) naml = naiveautoml.NaiveAutoML( logger_name="naml", timeout_overall=60, max_hpo_iterations=10, show_progress=True, - evaluation_fun=evaluate_randomly + evaluation_fun=evaluate_randomly, + random_state=0 ) naml.fit(X, y) print(naml.history[["learner_class", "neg_log_loss"]]) # check that there is only one combination of algorithms in the HPO phase history = naml.history.iloc[naml.steps_after_which_algorithm_selection_was_completed:] - self.assertTrue(len(pd.unique(history["learner_class"])) == 1) - self.assertTrue(len(pd.unique(history["data-pre-processor_class"])) == 1) - self.assertTrue(len(pd.unique(history["feature-pre-processor_class"])) == 1) - - # get best solution from phase 1 - phase_1_solutions = naml.history.iloc[:naml.steps_after_which_algorithm_selection_was_completed] - phase_1_solutions = phase_1_solutions[phase_1_solutions[naml.task.scoring["name"]].notna()] - best_solution_in_phase_1 = phase_1_solutions.sort_values(naml.task.scoring["name"]).iloc[-1] - - for step in ["data-pre-processor", "feature-pre-processor", "learner"]: - field = f"{step}_class" - class_in_phase1 = best_solution_in_phase_1[field] - class_in_phase2 = pd.unique(history[field])[0] - self.assertEqual( - class_in_phase1, - class_in_phase2, - f"Choice for {step} should conicide but is {class_in_phase1} in AS phase and {class_in_phase2} in HPO." - ) + if len(history) > 0: + self.assertTrue(len(pd.unique(history["learner_class"])) == 1) + self.assertTrue(len(pd.unique(history["data-pre-processor_class"])) == 1) + self.assertTrue(len(pd.unique(history["feature-pre-processor_class"])) == 1) + + # get best solution from phase 1 + phase_1_solutions = naml.history.iloc[:naml.steps_after_which_algorithm_selection_was_completed] + phase_1_solutions = phase_1_solutions[phase_1_solutions[naml.task.scoring["name"]].notna()] + best_solution_in_phase_1 = phase_1_solutions.sort_values(naml.task.scoring["name"]).iloc[-1] + + for step in ["data-pre-processor", "feature-pre-processor", "learner"]: + field = f"{step}_class" + class_in_phase1 = best_solution_in_phase_1[field] + class_in_phase2 = pd.unique(history[field])[0] + self.assertEqual( + class_in_phase1, + class_in_phase2, + f"Choice for {step} should conicide but is {class_in_phase1} in AS phase and {class_in_phase2} in HPO." + ) """ @@ -490,21 +553,24 @@ def test_individual_scoring(self, openmlid, exp_runtime, exp_result): X, y = get_dataset(openmlid) self.logger.info(f"Testing individual scoring function on dataset {openml}") - scoring1 = { - "name": "accuracy", - "score_func": lambda y, y_pred: np.count_nonzero(y == y_pred) / len(y), - "greater_is_better": True, - "needs_proba": False, - "needs_threshold": False - } - scoring2 = { - "name": "errorrate", - "score_func": lambda y, y_pred: np.count_nonzero(y != y_pred) / len(y), - "greater_is_better": False, - "needs_proba": False, - "needs_threshold": False - } - scorer = sklearn.metrics.make_scorer(**{k: v for k, v in scoring1.items() if k != "name"}) + scoring1 = ( + "accuracy", + make_scorer( + score_func=lambda y, y_pred: np.count_nonzero(y == y_pred) / len(y), + greater_is_better=True, + response_method="predict" + ) + ) + + scoring2 = ( + "errorrate", + make_scorer( + score_func=lambda y, y_pred: np.count_nonzero(y != y_pred) / len(y), + greater_is_better=False, + response_method="predict" + ) + ) + scorer = scoring1[1] # run naml scores = [] @@ -533,6 +599,7 @@ def test_individual_scoring(self, openmlid, exp_runtime, exp_result): # compute test performance self.logger.debug(f"finished training on seed {seed} after {int(np.round(runtime))}s. Now computing performance of solution.") + print(scorer) score = scorer(naml, X_test, y_test) scores.append(score) self.logger.debug(f"finished test on seed {seed}. Test score for this run is {score}") @@ -654,7 +721,7 @@ def update(self, pl, results): def test_searchspaces(self): for openmlid, task_type in { - #61: "classification", # iris + 61: "classification", # iris 531: "regression" # boston housing }.items(): @@ -667,8 +734,7 @@ def test_searchspaces(self): task_type=task_type, scoring=scoring, timeout_candidate=2, - evaluation_fun="mccv", - kwargs_evaluation_fun={"n_splits": 1} + evaluation_fun=TurboEvaluator() ) task = naml.get_task_from_data(X, y, None) naml.reset(task) @@ -701,10 +767,15 @@ def test_searchspaces(self): }) # get HPO process for supposed selection + config_space = helper.get_config_space_for_selected_algorithms(selection) + if len(config_space) == 0: + self.logger.info("Config space is empty, nothing to check.") + continue + hp_optimizer.reset( task=task, runtime_of_default_config=0, - config_space=helper.get_config_space_for_selected_algorithms(selection), + config_space=config_space, history_descriptor_creation_fun=lambda hp_config: naml.algorithm_selector.create_history_descriptor(faked_as_info, hp_config), evaluator=naml.evaluator, is_pipeline_forbidden=naml.algorithm_selector.is_pipeline_forbidden, @@ -728,7 +799,8 @@ def test_searchspaces(self): "There are significant negative eigenvalues", "ValueError: array must not contain infs or NaNs", "ValueError: Input X contains infinity or a value too large for", - "ValueError: illegal value in 4th argument of internal gesdd" + "ValueError: illegal value in 4th argument of internal gesdd", + "ValueError: Found array with 0 feature(s)" ] if not any([t in exception for t in allowed_exception_texts]): self.logger.exception(exception) @@ -745,7 +817,12 @@ def test_process_leak(self, openmlid): X, y = get_dataset(openmlid) self.logger.info(f"Start test of individual stateful evaluation function on dataset {openmlid}.") - X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, train_size=0.8) + X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split( + X, + y, + train_size=10, + test_size=10 + ) for i in range(1, 21): self.logger.info(f"Run {i}-th instance") automl = naiveautoml.NaiveAutoML( diff --git a/python/usage-example.ipynb b/python/usage-example.ipynb index 088fd01..aa59c10 100644 --- a/python/usage-example.ipynb +++ b/python/usage-example.ipynb @@ -2,10 +2,62 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "42bd5e12", - "metadata": {}, - "outputs": [], + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: naiveautoml in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (0.1.3)\n", + "Requirement already satisfied: numpy<2 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (1.26.4)\n", + "Requirement already satisfied: pandas in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (2.2.3)\n", + "Requirement already satisfied: scikit-learn==1.5.2 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (1.5.2)\n", + "Requirement already satisfied: scikit-multilearn==0.2.0 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (0.2.0)\n", + "Requirement already satisfied: configspace==1.2.0 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (1.2.0)\n", + "Requirement already satisfied: scipy in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (1.14.1)\n", + "Requirement already satisfied: pynisher in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (1.0.10)\n", + "Requirement already satisfied: psutil in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (6.0.0)\n", + "Requirement already satisfied: tqdm in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (4.66.5)\n", + "Requirement already satisfied: parameterized in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (0.9.0)\n", + "Requirement already satisfied: openml in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (0.14.2)\n", + "Requirement already satisfied: lccv in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from naiveautoml) (0.2.2)\n", + "Requirement already satisfied: pyparsing in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from configspace==1.2.0->naiveautoml) (3.1.4)\n", + "Requirement already satisfied: typing-extensions in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from configspace==1.2.0->naiveautoml) (4.12.2)\n", + "Requirement already satisfied: more-itertools in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from configspace==1.2.0->naiveautoml) (10.5.0)\n", + "Requirement already satisfied: joblib>=1.2.0 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from scikit-learn==1.5.2->naiveautoml) (1.4.2)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from scikit-learn==1.5.2->naiveautoml) (3.5.0)\n", + "Requirement already satisfied: matplotlib in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from lccv->naiveautoml) (3.9.2)\n", + "Requirement already satisfied: liac-arff>=2.4.0 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from openml->naiveautoml) (2.5.0)\n", + "Requirement already satisfied: xmltodict in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from openml->naiveautoml) (0.13.0)\n", + "Requirement already satisfied: requests in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from openml->naiveautoml) (2.32.3)\n", + "Requirement already satisfied: python-dateutil in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from openml->naiveautoml) (2.9.0.post0)\n", + "Requirement already satisfied: minio in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from openml->naiveautoml) (7.2.8)\n", + "Requirement already satisfied: pyarrow in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from openml->naiveautoml) (17.0.0)\n", + "Requirement already satisfied: pytz>=2020.1 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from pandas->naiveautoml) (2024.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from pandas->naiveautoml) (2024.2)\n", + "Requirement already satisfied: six>=1.5 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from python-dateutil->openml->naiveautoml) (1.16.0)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from matplotlib->lccv->naiveautoml) (1.3.0)\n", + "Requirement already satisfied: cycler>=0.10 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from matplotlib->lccv->naiveautoml) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from matplotlib->lccv->naiveautoml) (4.54.0)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from matplotlib->lccv->naiveautoml) (1.4.7)\n", + "Requirement already satisfied: packaging>=20.0 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from matplotlib->lccv->naiveautoml) (24.1)\n", + "Requirement already satisfied: pillow>=8 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from matplotlib->lccv->naiveautoml) (10.4.0)\n", + "Requirement already satisfied: certifi in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from minio->openml->naiveautoml) (2024.8.30)\n", + "Requirement already satisfied: urllib3 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from minio->openml->naiveautoml) (2.2.3)\n", + "Requirement already satisfied: argon2-cffi in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from minio->openml->naiveautoml) (23.1.0)\n", + "Requirement already satisfied: pycryptodome in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from minio->openml->naiveautoml) (3.20.0)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from requests->openml->naiveautoml) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from requests->openml->naiveautoml) (3.10)\n", + "Requirement already satisfied: argon2-cffi-bindings in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from argon2-cffi->minio->openml->naiveautoml) (21.2.0)\n", + "Requirement already satisfied: cffi>=1.0.1 in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from argon2-cffi-bindings->argon2-cffi->minio->openml->naiveautoml) (1.17.1)\n", + "Requirement already satisfied: pycparser in /home/felix/anaconda3/envs/naml/lib/python3.12/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->minio->openml->naiveautoml) (2.22)\n" + ] + } + ], "source": [ "!pip install naiveautoml" ] @@ -35,7 +87,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 31/31 [00:02<00:00, 11.46it/s]\n" + "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 32/32 [00:07<00:00, 4.12it/s]\n" ] }, { @@ -49,7 +101,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 22.73it/s]\n" + "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:24<00:00, 2.49s/it]\n" ] } ], @@ -476,13 +528,10 @@ " /* fitted */\n", " background-color: var(--sklearn-color-fitted-level-3);\n", "}\n", - "
Pipeline(steps=[('data-pre-processor', MinMaxScaler()),\n",
-       "                ('learner', LinearDiscriminantAnalysis())])
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=[('learner', ExtraTreesClassifier())])
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=[('data-pre-processor', MinMaxScaler()),\n", - " ('learner', LinearDiscriminantAnalysis())])" + "Pipeline(steps=[('learner', ExtraTreesClassifier())])" ] }, "execution_count": 3, @@ -544,74 +593,74 @@ " \n", " \n", " 0\n", - " 15\n", - " 1.716840e+09\n", - " 0.038556\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis())\n", + " 0\n", + " 1.728326e+09\n", + " 0.522395\n", + " ((ExtraTreeClassifier(random_state=1959646086)...\n", " True\n", - " -0.0256\n", + " -0.0570\n", " True\n", - " {'neg_log_loss': [-0.002495394501050993, -0.02...\n", + " {'neg_log_loss': [-0.035560745675446245, -0.03...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", + " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", " None\n", " \n", " \n", " 1\n", - " 22\n", - " 1.716840e+09\n", - " 0.076023\n", - " (MinMaxScaler(), FastICA(), LinearDiscriminant...\n", + " 8\n", + " 1.728326e+09\n", + " 0.028414\n", + " (QuadraticDiscriminantAnalysis())\n", " True\n", - " -0.0290\n", + " -0.0648\n", " False\n", - " {'neg_log_loss': [-0.021755102475042885, -0.08...\n", + " {'neg_log_loss': [-0.075598137132969, -0.08836...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", - " sklearn.decomposition._fastica.FastICA\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", + " None\n", + " None\n", + " sklearn.discriminant_analysis.QuadraticDiscrim...\n", " None\n", " \n", " \n", " 2\n", - " 20\n", - " 1.716840e+09\n", - " 0.037481\n", - " (StandardScaler(), LinearDiscriminantAnalysis())\n", + " 5\n", + " 1.728326e+09\n", + " 0.021561\n", + " (GaussianNB())\n", " True\n", - " -0.0320\n", + " -0.0763\n", " False\n", - " {'neg_log_loss': [-0.06935021251033252, -0.026...\n", + " {'neg_log_loss': [-0.1416176110952844, -0.0492...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.StandardScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", + " None\n", + " sklearn.naive_bayes.GaussianNB\n", " None\n", " \n", " \n", " 3\n", - " 17\n", - " 1.716840e+09\n", - " 0.073377\n", - " (PowerTransformer(), LinearDiscriminantAnalysi...\n", + " 7\n", + " 1.728326e+09\n", + " 0.030384\n", + " (LinearDiscriminantAnalysis())\n", " True\n", - " -0.0403\n", + " -0.0775\n", " False\n", - " {'neg_log_loss': [-0.019349148853344624, -0.07...\n", + " {'neg_log_loss': [-0.04503314380131569, -0.091...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.PowerTransformer\n", + " None\n", " None\n", " None\n", " None\n", @@ -620,470 +669,432 @@ " \n", " \n", " 4\n", - " 35\n", - " 1.716840e+09\n", - " 0.048369\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(sh...\n", - " False\n", - " -0.0471\n", + " 1\n", + " 1.728326e+09\n", + " 0.588323\n", + " (RandomForestClassifier())\n", " True\n", - " {'neg_log_loss': [-0.04895887982577556, -0.079...\n", + " -0.0821\n", + " False\n", + " {'neg_log_loss': [-0.04251933728837645, -0.189...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'auto', 'tol': 1.917751462463796...\n", + " None\n", + " sklearn.ensemble._forest.RandomForestClassifier\n", + " None\n", " \n", " \n", " 5\n", - " 40\n", - " 1.716840e+09\n", - " 0.037374\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(so...\n", - " False\n", - " -0.0499\n", + " 22\n", + " 1.728326e+09\n", + " 0.506231\n", + " (VarianceThreshold(), ExtraTreesClassifier())\n", " True\n", - " {'neg_log_loss': [-0.018734488484043823, -0.08...\n", + " -0.0890\n", + " False\n", + " {'neg_log_loss': [-0.07277377026732057, -0.074...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'None', 'tol': 0.0871508939358007}\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " None\n", " \n", " \n", " 6\n", - " 38\n", - " 1.716840e+09\n", - " 0.034237\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(so...\n", - " False\n", - " -0.0503\n", + " 17\n", + " 1.728326e+09\n", + " 0.575651\n", + " (Normalizer(), ExtraTreesClassifier())\n", " True\n", - " {'neg_log_loss': [-0.0765949969130555, -0.0462...\n", + " -0.0899\n", + " False\n", + " {'neg_log_loss': [-0.02478927940887918, -0.159...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", + " sklearn.preprocessing._data.Normalizer\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'None', 'tol': 0.000159870783723...\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " None\n", " \n", " \n", " 7\n", - " 33\n", - " 1.716840e+09\n", - " 0.036004\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(so...\n", - " False\n", - " -0.0510\n", + " 13\n", + " 1.728326e+09\n", + " 0.097281\n", + " (LogisticRegression())\n", " True\n", - " {'neg_log_loss': [-0.13321562481779245, -0.010...\n", + " -0.1103\n", + " False\n", + " {'neg_log_loss': [-0.09439910457891872, -0.131...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'None', 'tol': 0.000478226112929...\n", + " None\n", + " sklearn.linear_model.LogisticRegression\n", + " None\n", " \n", " \n", " 8\n", - " 31\n", - " 1.716840e+09\n", - " 0.048536\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(so...\n", - " False\n", - " -0.0512\n", + " 29\n", + " 1.728326e+09\n", + " 0.660204\n", + " (PolynomialFeatures(), ExtraTreesClassifier())\n", " True\n", - " {'neg_log_loss': [-0.07254237857271588, -0.027...\n", + " -0.1176\n", + " False\n", + " {'neg_log_loss': [-0.14511456353964386, -0.070...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", + " sklearn.preprocessing._polynomial.PolynomialFe...\n", + " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'None', 'tol': 1.735826848763034...\n", " \n", " \n", " 9\n", - " 18\n", - " 1.716840e+09\n", - " 0.040574\n", - " (QuantileTransformer(), LinearDiscriminantAnal...\n", + " 23\n", + " 1.728326e+09\n", + " 0.685154\n", + " (FastICA(), ExtraTreesClassifier())\n", " True\n", - " -0.0556\n", + " -0.1258\n", " False\n", - " {'neg_log_loss': [-0.11018273067707582, -0.008...\n", + " {'neg_log_loss': [-0.1329229165317684, -0.0874...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.QuantileTransformer\n", " None\n", " None\n", + " sklearn.decomposition._fastica.FastICA\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", " None\n", " \n", " \n", " 10\n", - " 36\n", - " 1.716840e+09\n", - " 0.045721\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(sh...\n", - " False\n", - " -0.0561\n", + " 28\n", + " 1.728326e+09\n", + " 0.590059\n", + " (PCA(), ExtraTreesClassifier())\n", " True\n", - " {'neg_log_loss': [-0.0862133174270862, -0.0457...\n", + " -0.1593\n", + " False\n", + " {'neg_log_loss': [-0.18733720031337187, -0.140...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", + " sklearn.decomposition._pca.PCA\n", + " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'auto', 'tol': 9.083819419770749...\n", " \n", " \n", " 11\n", - " 34\n", - " 1.716840e+09\n", - " 0.046783\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(sh...\n", + " 32\n", + " 1.728326e+09\n", + " 2.375114\n", + " (ExtraTreesClassifier(max_features=0.725304868...\n", " False\n", - " -0.0578\n", + " -0.1765\n", " True\n", - " {'neg_log_loss': [-0.07504199300724208, -0.032...\n", + " {'neg_log_loss': [-0.16982338373638153, -0.178...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'auto', 'tol': 0.000390299911886...\n", + " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", " \n", " \n", " 12\n", - " 19\n", - " 1.716840e+09\n", - " 0.045145\n", - " (RobustScaler(), LinearDiscriminantAnalysis())\n", + " 14\n", + " 1.728326e+09\n", + " 0.559326\n", + " (MLPClassifier())\n", " True\n", - " -0.0589\n", + " -0.2347\n", " False\n", - " {'neg_log_loss': [-0.06260639546974095, -0.008...\n", + " {'neg_log_loss': [-0.28821802181927886, -0.214...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.RobustScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", + " None\n", + " sklearn.neural_network._multilayer_perceptron....\n", " None\n", " \n", " \n", " 13\n", " 39\n", - " 1.716840e+09\n", - " 0.036426\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(sh...\n", + " 1.728326e+09\n", + " 3.200782\n", + " (ExtraTreesClassifier(bootstrap=True, criterio...\n", " False\n", - " -0.0644\n", + " -0.2413\n", " True\n", - " {'neg_log_loss': [-0.19533490226858358, -0.055...\n", + " {'neg_log_loss': [-0.22551765074824667, -0.249...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'manual', 'tol': 0.0013352412850...\n", + " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'True', 'criterion': 'entropy', ...\n", " \n", " \n", " 14\n", - " 37\n", - " 1.716840e+09\n", - " 0.036773\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(so...\n", + " 41\n", + " 1.728326e+09\n", + " 2.047107\n", + " (ExtraTreesClassifier(max_features=0.934182480...\n", " False\n", - " -0.0663\n", + " -0.2471\n", " True\n", - " {'neg_log_loss': [-0.044188917458848724, -0.07...\n", + " {'neg_log_loss': [-0.21506280777346423, -0.261...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'None', 'tol': 0.04619198175661532}\n", + " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", " \n", " \n", " 15\n", - " 27\n", - " 1.716840e+09\n", - " 0.048136\n", - " (MinMaxScaler(), PCA(), LinearDiscriminantAnal...\n", - " True\n", - " -0.0677\n", + " 34\n", + " 1.728326e+09\n", + " 2.374602\n", + " (ExtraTreesClassifier(criterion='entropy', max...\n", " False\n", - " {'neg_log_loss': [-0.02622884537934961, -0.037...\n", + " -0.3156\n", + " True\n", + " {'neg_log_loss': [-0.29650689548241016, -0.325...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", - " sklearn.decomposition._pca.PCA\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", " None\n", + " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'False', 'criterion': 'entropy',...\n", " \n", " \n", " 16\n", - " 7\n", - " 1.716840e+09\n", - " 0.030830\n", - " (LinearDiscriminantAnalysis())\n", - " True\n", - " -0.0741\n", + " 2\n", + " 1.728326e+09\n", + " 0.672299\n", + " (HistGradientBoostingClassifier())\n", " True\n", - " {'neg_log_loss': [-0.05479774773701625, -0.086...\n", + " -0.3245\n", + " False\n", + " {'neg_log_loss': [-0.576429902881904, -0.23101...\n", " ok\n", " None\n", " None\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", + " sklearn.ensemble.HistGradientBoostingClassifier\n", " None\n", " \n", " \n", " 17\n", - " 21\n", - " 1.716840e+09\n", - " 0.040023\n", - " (VarianceThreshold(), LinearDiscriminantAnalys...\n", - " True\n", - " -0.0841\n", + " 33\n", + " 1.728326e+09\n", + " 2.957551\n", + " (ExtraTreesClassifier(bootstrap=True, criterio...\n", " False\n", - " {'neg_log_loss': [-0.09759327975387903, -0.119...\n", + " -0.4980\n", + " True\n", + " {'neg_log_loss': [-0.4845302776973054, -0.5045...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'True', 'criterion': 'entropy', ...\n", " \n", " \n", " 18\n", - " 29\n", - " 1.716840e+09\n", - " 0.049416\n", - " (MinMaxScaler(), SelectPercentile(), LinearDis...\n", + " 15\n", + " 1.728326e+09\n", + " 0.027914\n", + " (MultinomialNB())\n", " True\n", - " -0.0864\n", + " -0.5671\n", " False\n", - " {'neg_log_loss': [-0.07460611584690269, -0.082...\n", + " {'neg_log_loss': [-0.5706108218760035, -0.5635...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", - " sklearn.feature_selection._univariate_selectio...\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", + " None\n", + " None\n", + " sklearn.naive_bayes.MultinomialNB\n", " None\n", " \n", " \n", " 19\n", - " 16\n", - " 1.716840e+09\n", - " 0.053158\n", - " (Normalizer(), LinearDiscriminantAnalysis())\n", - " True\n", - " -0.0957\n", + " 37\n", + " 1.728326e+09\n", + " 1.904881\n", + " (ExtraTreesClassifier(max_features=0.187438391...\n", " False\n", - " {'neg_log_loss': [-0.008705640849406344, -0.01...\n", + " -0.6068\n", + " True\n", + " {'neg_log_loss': [-0.5887696263887042, -0.6157...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.Normalizer\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", " \n", " \n", " 20\n", - " 0\n", - " 1.716840e+09\n", - " 0.393223\n", - " (ExtraTreesClassifier())\n", - " True\n", - " -0.1086\n", + " 24\n", + " 1.728326e+09\n", + " 0.744971\n", + " (FeatureAgglomeration(), ExtraTreesClassifier())\n", " True\n", - " {'neg_log_loss': [-0.1480640892431135, -0.0363...\n", + " -0.6356\n", + " False\n", + " {'neg_log_loss': [-1.3318127497285062, -0.1355...\n", " ok\n", " None\n", " None\n", " None\n", - " None\n", + " sklearn.cluster._agglomerative.FeatureAgglomer...\n", " None\n", " sklearn.ensemble._forest.ExtraTreesClassifier\n", " None\n", " \n", " \n", " 21\n", - " 8\n", - " 1.716840e+09\n", - " 0.024728\n", - " (QuadraticDiscriminantAnalysis())\n", - " True\n", - " -0.1127\n", + " 38\n", + " 1.728326e+09\n", + " 2.679551\n", + " (ExtraTreesClassifier(bootstrap=True, max_feat...\n", " False\n", - " {'neg_log_loss': [-0.09153325016961104, -0.119...\n", + " -0.6397\n", + " True\n", + " {'neg_log_loss': [-0.638336218959347, -0.64710...\n", " ok\n", " None\n", " None\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.QuadraticDiscrim...\n", - " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'True', 'criterion': 'gini', 'ma...\n", " \n", " \n", " 22\n", - " 32\n", - " 1.716840e+09\n", - " 0.040617\n", - " (MinMaxScaler(), LinearDiscriminantAnalysis(so...\n", + " 35\n", + " 1.728326e+09\n", + " 1.824337\n", + " (ExtraTreesClassifier(criterion='entropy', max...\n", " False\n", - " -0.1186\n", + " -0.6590\n", " True\n", - " {'neg_log_loss': [-0.129130290057952, -0.20282...\n", + " {'neg_log_loss': [-0.6835637540082007, -0.6613...\n", " ok\n", " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", " None\n", " None\n", " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " {'shrinkage': 'None', 'tol': 0.011865399901662...\n", + " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'False', 'criterion': 'entropy',...\n", " \n", " \n", " 23\n", - " 1\n", - " 1.716840e+09\n", - " 0.523188\n", - " (RandomForestClassifier())\n", - " True\n", - " -0.1224\n", + " 36\n", + " 1.728326e+09\n", + " 2.628361\n", + " (ExtraTreesClassifier(bootstrap=True, max_feat...\n", " False\n", - " {'neg_log_loss': [-0.17370315489963523, -0.142...\n", - " ok\n", - " None\n", - " None\n", - " None\n", - " None\n", - " None\n", - " sklearn.ensemble._forest.RandomForestClassifier\n", - " None\n", - " \n", - " \n", - " 24\n", - " 5\n", - " 1.716840e+09\n", - " 0.026534\n", - " (GaussianNB())\n", + " -0.7553\n", " True\n", - " -0.1362\n", - " False\n", - " {'neg_log_loss': [-0.20918447713333907, -0.069...\n", + " {'neg_log_loss': [-0.7583635062267161, -0.7650...\n", " ok\n", " None\n", " None\n", " None\n", " None\n", " None\n", - " sklearn.naive_bayes.GaussianNB\n", - " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'True', 'criterion': 'gini', 'ma...\n", " \n", " \n", - " 25\n", - " 30\n", - " 1.716840e+09\n", - " 0.053656\n", - " (MinMaxScaler(), GenericUnivariateSelect(), Li...\n", - " True\n", - " -0.1615\n", + " 24\n", + " 40\n", + " 1.728326e+09\n", + " 2.829714\n", + " (ExtraTreesClassifier(bootstrap=True, criterio...\n", " False\n", - " {'neg_log_loss': [-0.16943166611189786, -0.171...\n", - " ok\n", - " None\n", - " sklearn.preprocessing._data.MinMaxScaler\n", - " None\n", - " sklearn.feature_selection._univariate_selectio...\n", - " None\n", - " sklearn.discriminant_analysis.LinearDiscrimina...\n", - " None\n", - " \n", - " \n", - " 26\n", - " 13\n", - " 1.716840e+09\n", - " 0.445522\n", - " (MLPClassifier())\n", + " -0.7584\n", " True\n", - " -0.2662\n", - " False\n", - " {'neg_log_loss': [-0.24803474747552914, -0.248...\n", + " {'neg_log_loss': [-0.7271546410115207, -0.7667...\n", " ok\n", " None\n", " None\n", " None\n", " None\n", " None\n", - " sklearn.neural_network._multilayer_perceptron....\n", - " None\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", + " {'bootstrap': 'True', 'criterion': 'entropy', ...\n", " \n", " \n", - " 27\n", - " 2\n", - " 1.716840e+09\n", - " 0.532068\n", - " (HistGradientBoostingClassifier())\n", + " 25\n", + " 4\n", + " 1.728326e+09\n", + " 0.028692\n", + " (DecisionTreeClassifier())\n", " True\n", - " -0.3808\n", + " -0.9612\n", " False\n", - " {'neg_log_loss': [-0.4711134475626598, -0.4294...\n", + " {'neg_log_loss': [-2.4029102259411435, -1.2014...\n", " ok\n", " None\n", " None\n", " None\n", " None\n", " None\n", - " sklearn.ensemble.HistGradientBoostingClassifier\n", + " sklearn.tree._classes.DecisionTreeClassifier\n", " None\n", " \n", " \n", - " 28\n", + " 26\n", " 6\n", - " 1.716840e+09\n", - " 0.026399\n", + " 1.728326e+09\n", + " 0.028472\n", " (KNeighborsClassifier())\n", " True\n", - " -0.5414\n", + " -1.0164\n", " False\n", - " {'neg_log_loss': [-0.08555168796095076, -0.024...\n", + " {'neg_log_loss': [-1.2407969888941925, -1.2490...\n", " ok\n", " None\n", " None\n", @@ -1094,29 +1105,29 @@ " None\n", " \n", " \n", - " 29\n", - " 14\n", - " 1.716840e+09\n", - " 0.028472\n", - " (MultinomialNB())\n", + " 27\n", + " 30\n", + " 1.728326e+09\n", + " 0.597963\n", + " (SelectPercentile(), ExtraTreesClassifier())\n", " True\n", - " -0.5686\n", + " -1.0293\n", " False\n", - " {'neg_log_loss': [-0.5637805289461314, -0.5694...\n", + " {'neg_log_loss': [-1.25672938219069, -1.272544...\n", " ok\n", " None\n", " None\n", " None\n", + " sklearn.feature_selection._univariate_selectio...\n", " None\n", - " None\n", - " sklearn.naive_bayes.MultinomialNB\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", " None\n", " \n", " \n", - " 30\n", + " 28\n", " 3\n", - " 1.716840e+09\n", - " 0.031201\n", + " 1.728326e+09\n", + " 0.034009\n", " (BernoulliNB())\n", " True\n", " -1.0986\n", @@ -1132,22 +1143,22 @@ " None\n", " \n", " \n", - " 31\n", - " 4\n", - " 1.716840e+09\n", - " 0.024085\n", - " (DecisionTreeClassifier())\n", + " 29\n", + " 31\n", + " 1.728326e+09\n", + " 0.650155\n", + " (GenericUnivariateSelect(), ExtraTreesClassifi...\n", " True\n", - " -1.4417\n", + " -1.9644\n", " False\n", - " {'neg_log_loss': [-2.4029102259411435, -4.4408...\n", + " {'neg_log_loss': [-3.6461241045282278, -1.2611...\n", " ok\n", " None\n", " None\n", " None\n", + " sklearn.feature_selection._univariate_selectio...\n", " None\n", - " None\n", - " sklearn.tree._classes.DecisionTreeClassifier\n", + " sklearn.ensemble._forest.ExtraTreesClassifier\n", " None\n", " \n", " \n", @@ -1156,174 +1167,164 @@ ], "text/plain": [ " order time runtime \\\n", - "0 15 1.716840e+09 0.038556 \n", - "1 22 1.716840e+09 0.076023 \n", - "2 20 1.716840e+09 0.037481 \n", - "3 17 1.716840e+09 0.073377 \n", - "4 35 1.716840e+09 0.048369 \n", - "5 40 1.716840e+09 0.037374 \n", - "6 38 1.716840e+09 0.034237 \n", - "7 33 1.716840e+09 0.036004 \n", - "8 31 1.716840e+09 0.048536 \n", - "9 18 1.716840e+09 0.040574 \n", - "10 36 1.716840e+09 0.045721 \n", - "11 34 1.716840e+09 0.046783 \n", - "12 19 1.716840e+09 0.045145 \n", - "13 39 1.716840e+09 0.036426 \n", - "14 37 1.716840e+09 0.036773 \n", - "15 27 1.716840e+09 0.048136 \n", - "16 7 1.716840e+09 0.030830 \n", - "17 21 1.716840e+09 0.040023 \n", - "18 29 1.716840e+09 0.049416 \n", - "19 16 1.716840e+09 0.053158 \n", - "20 0 1.716840e+09 0.393223 \n", - "21 8 1.716840e+09 0.024728 \n", - "22 32 1.716840e+09 0.040617 \n", - "23 1 1.716840e+09 0.523188 \n", - "24 5 1.716840e+09 0.026534 \n", - "25 30 1.716840e+09 0.053656 \n", - "26 13 1.716840e+09 0.445522 \n", - "27 2 1.716840e+09 0.532068 \n", - "28 6 1.716840e+09 0.026399 \n", - "29 14 1.716840e+09 0.028472 \n", - "30 3 1.716840e+09 0.031201 \n", - "31 4 1.716840e+09 0.024085 \n", + "0 0 1.728326e+09 0.522395 \n", + "1 8 1.728326e+09 0.028414 \n", + "2 5 1.728326e+09 0.021561 \n", + "3 7 1.728326e+09 0.030384 \n", + "4 1 1.728326e+09 0.588323 \n", + "5 22 1.728326e+09 0.506231 \n", + "6 17 1.728326e+09 0.575651 \n", + "7 13 1.728326e+09 0.097281 \n", + "8 29 1.728326e+09 0.660204 \n", + "9 23 1.728326e+09 0.685154 \n", + "10 28 1.728326e+09 0.590059 \n", + "11 32 1.728326e+09 2.375114 \n", + "12 14 1.728326e+09 0.559326 \n", + "13 39 1.728326e+09 3.200782 \n", + "14 41 1.728326e+09 2.047107 \n", + "15 34 1.728326e+09 2.374602 \n", + "16 2 1.728326e+09 0.672299 \n", + "17 33 1.728326e+09 2.957551 \n", + "18 15 1.728326e+09 0.027914 \n", + "19 37 1.728326e+09 1.904881 \n", + "20 24 1.728326e+09 0.744971 \n", + "21 38 1.728326e+09 2.679551 \n", + "22 35 1.728326e+09 1.824337 \n", + "23 36 1.728326e+09 2.628361 \n", + "24 40 1.728326e+09 2.829714 \n", + "25 4 1.728326e+09 0.028692 \n", + "26 6 1.728326e+09 0.028472 \n", + "27 30 1.728326e+09 0.597963 \n", + "28 3 1.728326e+09 0.034009 \n", + "29 31 1.728326e+09 0.650155 \n", "\n", " pipeline default_hp \\\n", - "0 (MinMaxScaler(), LinearDiscriminantAnalysis()) True \n", - "1 (MinMaxScaler(), FastICA(), LinearDiscriminant... True \n", - "2 (StandardScaler(), LinearDiscriminantAnalysis()) True \n", - "3 (PowerTransformer(), LinearDiscriminantAnalysi... True \n", - "4 (MinMaxScaler(), LinearDiscriminantAnalysis(sh... False \n", - "5 (MinMaxScaler(), LinearDiscriminantAnalysis(so... False \n", - "6 (MinMaxScaler(), LinearDiscriminantAnalysis(so... False \n", - "7 (MinMaxScaler(), LinearDiscriminantAnalysis(so... False \n", - "8 (MinMaxScaler(), LinearDiscriminantAnalysis(so... False \n", - "9 (QuantileTransformer(), LinearDiscriminantAnal... True \n", - "10 (MinMaxScaler(), LinearDiscriminantAnalysis(sh... False \n", - "11 (MinMaxScaler(), LinearDiscriminantAnalysis(sh... False \n", - "12 (RobustScaler(), LinearDiscriminantAnalysis()) True \n", - "13 (MinMaxScaler(), LinearDiscriminantAnalysis(sh... False \n", - "14 (MinMaxScaler(), LinearDiscriminantAnalysis(so... False \n", - "15 (MinMaxScaler(), PCA(), LinearDiscriminantAnal... True \n", - "16 (LinearDiscriminantAnalysis()) True \n", - "17 (VarianceThreshold(), LinearDiscriminantAnalys... True \n", - "18 (MinMaxScaler(), SelectPercentile(), LinearDis... True \n", - "19 (Normalizer(), LinearDiscriminantAnalysis()) True \n", - "20 (ExtraTreesClassifier()) True \n", - "21 (QuadraticDiscriminantAnalysis()) True \n", - "22 (MinMaxScaler(), LinearDiscriminantAnalysis(so... False \n", - "23 (RandomForestClassifier()) True \n", - "24 (GaussianNB()) True \n", - "25 (MinMaxScaler(), GenericUnivariateSelect(), Li... True \n", - "26 (MLPClassifier()) True \n", - "27 (HistGradientBoostingClassifier()) True \n", - "28 (KNeighborsClassifier()) True \n", - "29 (MultinomialNB()) True \n", - "30 (BernoulliNB()) True \n", - "31 (DecisionTreeClassifier()) True \n", + "0 ((ExtraTreeClassifier(random_state=1959646086)... True \n", + "1 (QuadraticDiscriminantAnalysis()) True \n", + "2 (GaussianNB()) True \n", + "3 (LinearDiscriminantAnalysis()) True \n", + "4 (RandomForestClassifier()) True \n", + "5 (VarianceThreshold(), ExtraTreesClassifier()) True \n", + "6 (Normalizer(), ExtraTreesClassifier()) True \n", + "7 (LogisticRegression()) True \n", + "8 (PolynomialFeatures(), ExtraTreesClassifier()) True \n", + "9 (FastICA(), ExtraTreesClassifier()) True \n", + "10 (PCA(), ExtraTreesClassifier()) True \n", + "11 (ExtraTreesClassifier(max_features=0.725304868... False \n", + "12 (MLPClassifier()) True \n", + "13 (ExtraTreesClassifier(bootstrap=True, criterio... False \n", + "14 (ExtraTreesClassifier(max_features=0.934182480... False \n", + "15 (ExtraTreesClassifier(criterion='entropy', max... False \n", + "16 (HistGradientBoostingClassifier()) True \n", + "17 (ExtraTreesClassifier(bootstrap=True, criterio... False \n", + "18 (MultinomialNB()) True \n", + "19 (ExtraTreesClassifier(max_features=0.187438391... False \n", + "20 (FeatureAgglomeration(), ExtraTreesClassifier()) True \n", + "21 (ExtraTreesClassifier(bootstrap=True, max_feat... False \n", + "22 (ExtraTreesClassifier(criterion='entropy', max... False \n", + "23 (ExtraTreesClassifier(bootstrap=True, max_feat... False \n", + "24 (ExtraTreesClassifier(bootstrap=True, criterio... False \n", + "25 (DecisionTreeClassifier()) True \n", + "26 (KNeighborsClassifier()) True \n", + "27 (SelectPercentile(), ExtraTreesClassifier()) True \n", + "28 (BernoulliNB()) True \n", + "29 (GenericUnivariateSelect(), ExtraTreesClassifi... True \n", "\n", " neg_log_loss new_best evaluation_report \\\n", - "0 -0.0256 True {'neg_log_loss': [-0.002495394501050993, -0.02... \n", - "1 -0.0290 False {'neg_log_loss': [-0.021755102475042885, -0.08... \n", - "2 -0.0320 False {'neg_log_loss': [-0.06935021251033252, -0.026... \n", - "3 -0.0403 False {'neg_log_loss': [-0.019349148853344624, -0.07... \n", - "4 -0.0471 True {'neg_log_loss': [-0.04895887982577556, -0.079... \n", - "5 -0.0499 True {'neg_log_loss': [-0.018734488484043823, -0.08... \n", - "6 -0.0503 True {'neg_log_loss': [-0.0765949969130555, -0.0462... \n", - "7 -0.0510 True {'neg_log_loss': [-0.13321562481779245, -0.010... \n", - "8 -0.0512 True {'neg_log_loss': [-0.07254237857271588, -0.027... \n", - "9 -0.0556 False {'neg_log_loss': [-0.11018273067707582, -0.008... \n", - "10 -0.0561 True {'neg_log_loss': [-0.0862133174270862, -0.0457... \n", - "11 -0.0578 True {'neg_log_loss': [-0.07504199300724208, -0.032... \n", - "12 -0.0589 False {'neg_log_loss': [-0.06260639546974095, -0.008... \n", - "13 -0.0644 True {'neg_log_loss': [-0.19533490226858358, -0.055... \n", - "14 -0.0663 True {'neg_log_loss': [-0.044188917458848724, -0.07... \n", - "15 -0.0677 False {'neg_log_loss': [-0.02622884537934961, -0.037... \n", - "16 -0.0741 True {'neg_log_loss': [-0.05479774773701625, -0.086... \n", - "17 -0.0841 False {'neg_log_loss': [-0.09759327975387903, -0.119... \n", - "18 -0.0864 False {'neg_log_loss': [-0.07460611584690269, -0.082... \n", - "19 -0.0957 False {'neg_log_loss': [-0.008705640849406344, -0.01... \n", - "20 -0.1086 True {'neg_log_loss': [-0.1480640892431135, -0.0363... \n", - "21 -0.1127 False {'neg_log_loss': [-0.09153325016961104, -0.119... \n", - "22 -0.1186 True {'neg_log_loss': [-0.129130290057952, -0.20282... \n", - "23 -0.1224 False {'neg_log_loss': [-0.17370315489963523, -0.142... \n", - "24 -0.1362 False {'neg_log_loss': [-0.20918447713333907, -0.069... \n", - "25 -0.1615 False {'neg_log_loss': [-0.16943166611189786, -0.171... \n", - "26 -0.2662 False {'neg_log_loss': [-0.24803474747552914, -0.248... \n", - "27 -0.3808 False {'neg_log_loss': [-0.4711134475626598, -0.4294... \n", - "28 -0.5414 False {'neg_log_loss': [-0.08555168796095076, -0.024... \n", - "29 -0.5686 False {'neg_log_loss': [-0.5637805289461314, -0.5694... \n", - "30 -1.0986 False {'neg_log_loss': [-1.09861228866811, -1.098612... \n", - "31 -1.4417 False {'neg_log_loss': [-2.4029102259411435, -4.4408... \n", + "0 -0.0570 True {'neg_log_loss': [-0.035560745675446245, -0.03... \n", + "1 -0.0648 False {'neg_log_loss': [-0.075598137132969, -0.08836... \n", + "2 -0.0763 False {'neg_log_loss': [-0.1416176110952844, -0.0492... \n", + "3 -0.0775 False {'neg_log_loss': [-0.04503314380131569, -0.091... \n", + "4 -0.0821 False {'neg_log_loss': [-0.04251933728837645, -0.189... \n", + "5 -0.0890 False {'neg_log_loss': [-0.07277377026732057, -0.074... \n", + "6 -0.0899 False {'neg_log_loss': [-0.02478927940887918, -0.159... \n", + "7 -0.1103 False {'neg_log_loss': [-0.09439910457891872, -0.131... \n", + "8 -0.1176 False {'neg_log_loss': [-0.14511456353964386, -0.070... \n", + "9 -0.1258 False {'neg_log_loss': [-0.1329229165317684, -0.0874... \n", + "10 -0.1593 False {'neg_log_loss': [-0.18733720031337187, -0.140... \n", + "11 -0.1765 True {'neg_log_loss': [-0.16982338373638153, -0.178... \n", + "12 -0.2347 False {'neg_log_loss': [-0.28821802181927886, -0.214... \n", + "13 -0.2413 True {'neg_log_loss': [-0.22551765074824667, -0.249... \n", + "14 -0.2471 True {'neg_log_loss': [-0.21506280777346423, -0.261... \n", + "15 -0.3156 True {'neg_log_loss': [-0.29650689548241016, -0.325... \n", + "16 -0.3245 False {'neg_log_loss': [-0.576429902881904, -0.23101... \n", + "17 -0.4980 True {'neg_log_loss': [-0.4845302776973054, -0.5045... \n", + "18 -0.5671 False {'neg_log_loss': [-0.5706108218760035, -0.5635... \n", + "19 -0.6068 True {'neg_log_loss': [-0.5887696263887042, -0.6157... \n", + "20 -0.6356 False {'neg_log_loss': [-1.3318127497285062, -0.1355... \n", + "21 -0.6397 True {'neg_log_loss': [-0.638336218959347, -0.64710... \n", + "22 -0.6590 True {'neg_log_loss': [-0.6835637540082007, -0.6613... \n", + "23 -0.7553 True {'neg_log_loss': [-0.7583635062267161, -0.7650... \n", + "24 -0.7584 True {'neg_log_loss': [-0.7271546410115207, -0.7667... \n", + "25 -0.9612 False {'neg_log_loss': [-2.4029102259411435, -1.2014... \n", + "26 -1.0164 False {'neg_log_loss': [-1.2407969888941925, -1.2490... \n", + "27 -1.0293 False {'neg_log_loss': [-1.25672938219069, -1.272544... \n", + "28 -1.0986 False {'neg_log_loss': [-1.09861228866811, -1.098612... \n", + "29 -1.9644 False {'neg_log_loss': [-3.6461241045282278, -1.2611... \n", "\n", " status exception data-pre-processor_class \\\n", - "0 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "1 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "2 ok None sklearn.preprocessing._data.StandardScaler \n", - "3 ok None sklearn.preprocessing._data.PowerTransformer \n", - "4 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "5 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "6 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "7 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "8 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "9 ok None sklearn.preprocessing._data.QuantileTransformer \n", - "10 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "11 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "12 ok None sklearn.preprocessing._data.RobustScaler \n", - "13 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "14 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "15 ok None sklearn.preprocessing._data.MinMaxScaler \n", + "0 ok None None \n", + "1 ok None None \n", + "2 ok None None \n", + "3 ok None None \n", + "4 ok None None \n", + "5 ok None sklearn.feature_selection._variance_threshold.... \n", + "6 ok None sklearn.preprocessing._data.Normalizer \n", + "7 ok None None \n", + "8 ok None None \n", + "9 ok None None \n", + "10 ok None None \n", + "11 ok None None \n", + "12 ok None None \n", + "13 ok None None \n", + "14 ok None None \n", + "15 ok None None \n", "16 ok None None \n", - "17 ok None sklearn.feature_selection._variance_threshold.... \n", - "18 ok None sklearn.preprocessing._data.MinMaxScaler \n", - "19 ok None sklearn.preprocessing._data.Normalizer \n", + "17 ok None None \n", + "18 ok None None \n", + "19 ok None None \n", "20 ok None None \n", "21 ok None None \n", - "22 ok None sklearn.preprocessing._data.MinMaxScaler \n", + "22 ok None None \n", "23 ok None None \n", "24 ok None None \n", - "25 ok None sklearn.preprocessing._data.MinMaxScaler \n", + "25 ok None None \n", "26 ok None None \n", "27 ok None None \n", "28 ok None None \n", "29 ok None None \n", - "30 ok None None \n", - "31 ok None None \n", "\n", " data-pre-processor_hps feature-pre-processor_class \\\n", "0 None None \n", - "1 None sklearn.decomposition._fastica.FastICA \n", + "1 None None \n", "2 None None \n", "3 None None \n", "4 None None \n", "5 None None \n", "6 None None \n", "7 None None \n", - "8 None None \n", - "9 None None \n", - "10 None None \n", + "8 None sklearn.preprocessing._polynomial.PolynomialFe... \n", + "9 None sklearn.decomposition._fastica.FastICA \n", + "10 None sklearn.decomposition._pca.PCA \n", "11 None None \n", "12 None None \n", "13 None None \n", "14 None None \n", - "15 None sklearn.decomposition._pca.PCA \n", + "15 None None \n", "16 None None \n", "17 None None \n", - "18 None sklearn.feature_selection._univariate_selectio... \n", + "18 None None \n", "19 None None \n", - "20 None None \n", + "20 None sklearn.cluster._agglomerative.FeatureAgglomer... \n", "21 None None \n", "22 None None \n", "23 None None \n", "24 None None \n", - "25 None sklearn.feature_selection._univariate_selectio... \n", + "25 None None \n", "26 None None \n", - "27 None None \n", + "27 None sklearn.feature_selection._univariate_selectio... \n", "28 None None \n", - "29 None None \n", - "30 None None \n", - "31 None None \n", + "29 None sklearn.feature_selection._univariate_selectio... \n", "\n", " feature-pre-processor_hps \\\n", "0 None \n", @@ -1356,76 +1357,70 @@ "27 None \n", "28 None \n", "29 None \n", - "30 None \n", - "31 None \n", "\n", " learner_class \\\n", - "0 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "1 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "2 sklearn.discriminant_analysis.LinearDiscrimina... \n", + "0 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "1 sklearn.discriminant_analysis.QuadraticDiscrim... \n", + "2 sklearn.naive_bayes.GaussianNB \n", "3 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "4 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "5 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "6 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "7 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "8 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "9 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "10 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "11 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "12 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "13 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "14 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "15 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "16 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "17 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "18 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "19 sklearn.discriminant_analysis.LinearDiscrimina... \n", + "4 sklearn.ensemble._forest.RandomForestClassifier \n", + "5 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "6 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "7 sklearn.linear_model.LogisticRegression \n", + "8 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "9 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "10 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "11 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "12 sklearn.neural_network._multilayer_perceptron.... \n", + "13 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "14 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "15 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "16 sklearn.ensemble.HistGradientBoostingClassifier \n", + "17 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "18 sklearn.naive_bayes.MultinomialNB \n", + "19 sklearn.ensemble._forest.ExtraTreesClassifier \n", "20 sklearn.ensemble._forest.ExtraTreesClassifier \n", - "21 sklearn.discriminant_analysis.QuadraticDiscrim... \n", - "22 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "23 sklearn.ensemble._forest.RandomForestClassifier \n", - "24 sklearn.naive_bayes.GaussianNB \n", - "25 sklearn.discriminant_analysis.LinearDiscrimina... \n", - "26 sklearn.neural_network._multilayer_perceptron.... \n", - "27 sklearn.ensemble.HistGradientBoostingClassifier \n", - "28 sklearn.neighbors._classification.KNeighborsCl... \n", - "29 sklearn.naive_bayes.MultinomialNB \n", - "30 sklearn.naive_bayes.BernoulliNB \n", - "31 sklearn.tree._classes.DecisionTreeClassifier \n", + "21 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "22 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "23 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "24 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "25 sklearn.tree._classes.DecisionTreeClassifier \n", + "26 sklearn.neighbors._classification.KNeighborsCl... \n", + "27 sklearn.ensemble._forest.ExtraTreesClassifier \n", + "28 sklearn.naive_bayes.BernoulliNB \n", + "29 sklearn.ensemble._forest.ExtraTreesClassifier \n", "\n", " learner_hps \n", "0 None \n", "1 None \n", "2 None \n", "3 None \n", - "4 {'shrinkage': 'auto', 'tol': 1.917751462463796... \n", - "5 {'shrinkage': 'None', 'tol': 0.0871508939358007} \n", - "6 {'shrinkage': 'None', 'tol': 0.000159870783723... \n", - "7 {'shrinkage': 'None', 'tol': 0.000478226112929... \n", - "8 {'shrinkage': 'None', 'tol': 1.735826848763034... \n", + "4 None \n", + "5 None \n", + "6 None \n", + "7 None \n", + "8 None \n", "9 None \n", - "10 {'shrinkage': 'auto', 'tol': 9.083819419770749... \n", - "11 {'shrinkage': 'auto', 'tol': 0.000390299911886... \n", + "10 None \n", + "11 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", "12 None \n", - "13 {'shrinkage': 'manual', 'tol': 0.0013352412850... \n", - "14 {'shrinkage': 'None', 'tol': 0.04619198175661532} \n", - "15 None \n", + "13 {'bootstrap': 'True', 'criterion': 'entropy', ... \n", + "14 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", + "15 {'bootstrap': 'False', 'criterion': 'entropy',... \n", "16 None \n", - "17 None \n", + "17 {'bootstrap': 'True', 'criterion': 'entropy', ... \n", "18 None \n", - "19 None \n", + "19 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", "20 None \n", - "21 None \n", - "22 {'shrinkage': 'None', 'tol': 0.011865399901662... \n", - "23 None \n", - "24 None \n", + "21 {'bootstrap': 'True', 'criterion': 'gini', 'ma... \n", + "22 {'bootstrap': 'False', 'criterion': 'entropy',... \n", + "23 {'bootstrap': 'True', 'criterion': 'gini', 'ma... \n", + "24 {'bootstrap': 'True', 'criterion': 'entropy', ... \n", "25 None \n", "26 None \n", "27 None \n", "28 None \n", - "29 None \n", - "30 None \n", - "31 None " + "29 None " ] }, "execution_count": 4, @@ -1445,7 +1440,7 @@ "outputs": [ { "data": { - "image/png": "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qh/+8Ieqqqrq0TkkghUAAAAAAAAAAAJm4cKFeuaZZzrcVlNTo8WLF+sXv/iF6fNt3bpVRUVFnp/169dLkr73ve959qmurtbpp5+u+++/v9PzbNy4UYsXL9aiRYu0ZcsWbd26VStWrJDV2hIrXHDBBWpqatL777+vzz77TFlZWbrwwgtVXFwsSbJarVqyZInWrl2rAwcO6JlnntF7772nG2+80XOOf/3rX7rqqqt04403avfu3frjH/+oRx55RKtXr26znssuu0z//ve/9dRTT2n//v16+eWXNXHiRNN/LoWFhTrnnHM0btw4bd68WevWrdOePXt07bXXmj6Hm8UwDKPHRwEAAAAAAAAAgD5buHChrr322i5v8H/44Yf65je/qbKyMiUkJPTo/CtXrtQ777yjgwcPymKxtNn21VdfafTo0crJyVFWVlabbXPnztW5556r3/zmNx2e99ixYxo2bJg++ugjnXHGGZKkyspKxcfH67333tPZZ5/d4XGPP/64HnroIeXn50uSli5dqsbGRr3++uuefR577DE9/PDDysvLk8Vi0bp163TFFVfo0KFDGjJkSKev9emnn9aDDz6ow4cPa9SoUbrlllt00003SXJV/9x9990qKiryhEO5ubnKzs7WwYMHNW7cuC7+FNuiYgUAAAAAAAAAgAGooaFBL7zwgq6//vp2oUpXSktLtXnzZiUnJ2v+/PlKSUnRggUL9Mknn3j2GTp0qCZNmqTnnntO1dXVampq0hNPPKGUlBTNnDmzw/MWFhbqrbfe0oIFCzyP1dfXKzIyss1+UVFROnLkiL7++mtJ0tq1azVr1iw9+OCDysjI0CmnnKKf/vSnbdqSPfnkk7rrrrv0X//1X9q7d6/uvfde3X333Xr22Wc9zxMeHt6m4iYqKkqS2rwuMwhWAAAAAAAAAAAYgP7+97+rvLy8x+2uDh06JElatWqVli9frnXr1unUU0/V2WefrYMHD0qSLBaL1q9fr5ycHMXFxSkyMlKPPvqo1q1b166q5sorr1R0dLQyMjIUHx+vv/71r55t5513nt566y39+9//ltPp1IEDB/TYY49JkoqKijzr+eSTT7R7926tWbNGjz32mN544402c2N+85vf6OGHH9bFF1+s0aNH6+KLL9att96qJ554QpJ01llnqbi4WA899JAaGhpUVlbmabHmfh6zCFYAAAAAAAAAAPCTe++9V7GxsZ6fjz/+WDfeeGO7x7zhqaee0vnnn6/09PQeHed0OiVJP/rRj3TdddcpOztbjz76qCZMmOAZGG8Yhm666SYlJyfr448/1pYtW7RkyRJdeOGF7YKKRx99VNu3b9ff//53ffnll7rttts825YvX64VK1bowgsvVHh4uObOnasrrrhCkhQSEuJZj8Vi0YsvvqjZs2frW9/6lh555BE988wzqq2t1dGjR5Wfn68bbrihzZ/jb3/7W3355ZeSpClTpujZZ5/Vww8/rOjoaKWmpmrMmDFKSUnxPI9ZoT3aGwAAAAAAAAAA9NqNN96oyy67zPP7q666Spdccokuvvhiz2MZGRl9fp6vv/5a7733nt56660eH5uWliZJmjx5cpvHJ02apLy8PEnS+++/r3feeUdlZWWKj4+XJP3xj3/U+vXr9eyzz+qOO+7wHJeamqrU1FRNnDhRQ4cO1RlnnKG7775baWlpslgseuCBB3TvvfequLhYw4YN07///W9J0qhRozzrycjIkM1ma7MWwzB05MgRz/M/+eSTmjNnTps1tw5Nli5dqqVLl6qkpEQxMTGyWCx65JFHNHr06B79+RCsAAAAAAAAAADgJ0OGDGkzgD0qKkrJyck9Gp5uxtNPP63k5GRdcMEFPT521KhRSk9P1/79+9s8fuDAAZ1//vmSpJqaGklqM7PE/Xt3xUtHDMOQ5Jp50lpISIgnUHr55Zc1b948JScnS5JOP/10vf7666qqqlJsbKxnLVarVcOHD1dUVJQyMjJ06NAhXXXVVd2+vpSUFEnS3/72N0VGRurcc8/t9pjWCFYAAAAAAAAAAAhCxcXFKi4u1hdffCFJ2rVrl+Li4jRixAhPOHP22Wfru9/9rlasWOE5zul06umnn9Y111yj0ND2McCJEyeUl5enwsJCSfIEKO7KEovFop/97Ge65557NGPGDGVlZenZZ5/Vvn379MYbb0iS5s2bp8TERF1zzTX6z//8T0VFRenJJ5/U4cOHPWHOP//5T5WUlOi0005TbGysPv/8c91+++06/fTTPdUox44d0xtvvKGFCxeqrq5OTz/9tF5//XVt2LDBs96lS5fqN7/5ja677jr96le/0rFjx/Szn/1M119/vWcA/apVq3TLLbcoPj5e559/vurr67Vt2zaVlZV5Wo+tXr1a8+fPV2xsrNavX6+f/exnuv/++9vNhOkOwQoAAAAAAAAAAEHoz3/+s371q195fn/mmWdKclWjuAfSf/nllzp27Fib49577z3l5eXp+uuv7/C8a9eu1XXXXef5vXumyT333KNVq1ZJklauXKm6ujrdeuutOnHihGbMmKH169dr7NixkqSkpCStW7dOd911l8466yw1NjZqypQpevvttzVjxgxJ8oQtt956q+rr65WZmamLL764TZswSXr22Wf105/+VIZhaN68efrwww81e/Zsz3Z3EHLzzTdr1qxZGjp0qC677DL99re/9ezzgx/8QNHR0XrooYd0++23KyYmRtOmTdPKlSs9+2zZskX33HOPqqqqNHHiRD3xxBNatmxZt38PJ7MY7robAAAAAAAAAAAAdMna/S4AAAAAAAAAAACQCFYAAAAAAAAAAABMI1gBAAAAAAAAAAAwiWAFAAAAAAAAAADAJIIVAAAAAAAAAAAAkwhWAAAAAAAAAAAATCJYAQAAAAAAAAAAMIlgBQAAAAAAAAAAwCSCFQAAAAAAAAAAAJMIVgAAAAAAAAAAAEwiWAEAAAAAAAAAADDp/wOO/1CT3kpUKgAAAABJRU5ErkJggg==", + "image/png": "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uv7whz9oyZIleuONN7Rx40aNHz9e48aN04EDByTxngr4gxNdpxLvqYC3VVZWavDgwXr22Wdb3O/O++fkyZO1efNmLVmyRIsWLdKKFSt03XXXeeslAJ1ee1ynknTfffe5vMfOnDnTG9MHuoQTXaeVlZUaNWqUHn744WOOccstt+iTTz7R+++/r+XLlys/P1+XXnqpp6aM9mTAqy688ELj97//vctjl156qTF58mTDMAzDZrMZSUlJxqOPPurcX1paalgsFuOdd97x6lyBrupE16lhGMY111xjXHzxxV6eGYCmqqqqjICAAGPRokUujw8dOtT405/+xHsq4AdOdJ0aBu+pgK9JMj788EPn9+68f27ZssWQZKxdu9Z5zL///W/DZDIZBw4c8Nrcga7iZK5TwzCM3r17G08++aQXZwp0Xb+8Tpvas2ePIcn47rvvXB4vLS01goKCjPfff9/52NatWw1JRm5urgdni/ZAxYqXjRw5UkuXLtWPP/4oSfr++++1cuVKnX/++ZKkPXv2qLCwUOPGjXOeEx0draysLOXm5vpkzkBXc6Lr1GHZsmVKSEhQ//79deONN+rw4cO+mC7QZdXX16uhoUEhISEuj4eGhmrlypW8pwJ+4ETXqQPvqYD/cOf9Mzc3VzExMRo+fLjzmHHjxslsNmv16tVenzPQ1bTm/3Mfeughde/eXUOGDNGjjz6q+vp6b08XwDGsW7dOdXV1LtdyRkaGevXqxb9ZO4BAX0+gq5kzZ46sVqsyMjIUEBCghoYGPfDAA5o8ebIkqbCwUJKUmJjocl5iYqJzHwDPOtF1KtmXLLn00kvVt29f7dq1S3fccYfOP/985ebmKiAgwIezB7qOyMhIZWdn6/7779eAAQOUmJiod955R7m5uerXrx/vqYAfONF1KvGeCvgbd94/CwsLlZCQ4LI/MDBQsbGxvMcCXuDu/+fefPPNGjp0qGJjY7Vq1SrNnTtXBQUFeuKJJ7w6XwAtKywsVHBwsGJiYlwe59+sHQPBipe99957euutt/T2229r4MCB2rBhg2bNmqWUlBRdc801vp4eALl3nV555ZXO4wcNGqTTTz9d6enpWrZsmcaOHeurqQNdzhtvvKHf//736tGjhwICAjR06FBNmjRJ69at8/XUADQ60XXKeyoAAJ4xe/Zs59enn366goODdf3112vevHmyWCw+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", "text/plain": [ "
" ] @@ -1461,7 +1456,7 @@ " scoring = naml.task.scoring[\"name\"]\n", " \n", " fig, ax = plt.subplots(figsize=(20, 4))\n", - " ax.plot(naml.history[\"time\"], naml.history[scoring])\n", + " ax.step(naml.history[\"time\"], naml.history[scoring])\n", " ax.axhline(naml.history[scoring].max(), linestyle=\"--\", color=\"black\", linewidth=1)\n", " max_val = naml.history[scoring].max()\n", " median_val = naml.history[scoring].median()\n", @@ -1855,7 +1850,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 31/31 [00:15<00:00, 2.04it/s]\n" + "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 32/32 [00:21<00:00, 1.49it/s]\n" ] }, { @@ -1869,7 +1864,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:43<00:00, 4.35s/it]\n" + "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:45<00:00, 4.52s/it]\n" ] } ], @@ -1905,7 +1900,6 @@ " ['Abbrev', 'Locality',\n", " 'Map_Ref', 'Latitude',\n", " 'Sp'])])),\n", - " ('data-pre-processor', VarianceThreshold()),\n", " ('feature-pre-processor', PolynomialFeatures()),\n", " ('learner', RandomForestClassifier())])\n" ] @@ -1965,17 +1959,17 @@ " \n", " \n", " 0\n", - " 28\n", - " 1.716840e+09\n", - " 2.947976\n", + " 29\n", + " 1.728326e+09\n", + " 2.947797\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -0.7442\n", + " -0.7627\n", " True\n", - " {'neg_log_loss': [-0.7438252244500024, -0.8369...\n", + " {'neg_log_loss': [-0.7863294976455495, -0.7634...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", " None\n", @@ -1984,17 +1978,17 @@ " \n", " \n", " 1\n", - " 21\n", - " 1.716840e+09\n", - " 1.659287\n", + " 1\n", + " 1.728326e+09\n", + " 2.122452\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -0.7972\n", + " -0.8041\n", " True\n", - " {'neg_log_loss': [-0.8040130707520944, -0.8367...\n", + " {'neg_log_loss': [-0.7672424451231477, -0.7532...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " None\n", " None\n", @@ -2003,17 +1997,17 @@ " \n", " \n", " 2\n", - " 1\n", - " 1.716840e+09\n", - " 1.398526\n", + " 22\n", + " 1.728326e+09\n", + " 1.680269\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -0.8218\n", - " True\n", - " {'neg_log_loss': [-0.7985448420232011, -0.8385...\n", + " -0.8271\n", + " False\n", + " {'neg_log_loss': [-0.8780849948595296, -0.8649...\n", " ok\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " None\n", " None\n", @@ -2022,14 +2016,14 @@ " \n", " \n", " 3\n", - " 16\n", - " 1.716840e+09\n", - " 1.897339\n", + " 17\n", + " 1.728326e+09\n", + " 1.965827\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -0.8747\n", + " -0.8628\n", " False\n", - " {'neg_log_loss': [-0.890343561760756, -0.92738...\n", + " {'neg_log_loss': [-0.8932091820019521, -0.8652...\n", " ok\n", " None\n", " sklearn.preprocessing._data.Normalizer\n", @@ -2041,14 +2035,33 @@ " \n", " \n", " 4\n", + " 34\n", + " 1.728326e+09\n", + " 5.485827\n", + " (ColumnTransformer(transformers=[('num',\\n ...\n", + " False\n", + " -0.9799\n", + " True\n", + " {'neg_log_loss': [-0.9702446225658047, -1.0076...\n", + " ok\n", + " None\n", + " None\n", + " None\n", + " sklearn.preprocessing._polynomial.PolynomialFe...\n", + " {'degree': 2, 'include_bias': 'True', 'interac...\n", + " sklearn.ensemble._forest.RandomForestClassifier\n", + " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", + " \n", + " \n", + " 5\n", " 0\n", - " 1.716840e+09\n", - " 1.420007\n", + " 1.728326e+09\n", + " 3.453922\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -0.8969\n", + " -1.0150\n", " True\n", - " {'neg_log_loss': [-0.9249840584167478, -0.8883...\n", + " {'neg_log_loss': [-0.8030745978803508, -1.1351...\n", " ok\n", " None\n", " None\n", @@ -2059,113 +2072,132 @@ " None\n", " \n", " \n", - " 5\n", - " 29\n", - " 1.716840e+09\n", - " 1.536983\n", + " 6\n", + " 28\n", + " 1.728326e+09\n", + " 3.102600\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -1.1550\n", + " -1.0335\n", " False\n", - " {'neg_log_loss': [-1.1235866063406887, -1.1675...\n", + " {'neg_log_loss': [-1.001467758467775, -1.04278...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", " None\n", - " sklearn.feature_selection._univariate_selectio...\n", + " None\n", + " sklearn.decomposition._pca.PCA\n", " None\n", " sklearn.ensemble._forest.RandomForestClassifier\n", " None\n", " \n", " \n", - " 6\n", - " 32\n", - " 1.716840e+09\n", - " 4.452793\n", + " 7\n", + " 30\n", + " 1.728326e+09\n", + " 1.492167\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", - " False\n", - " -1.1597\n", " True\n", - " {'neg_log_loss': [-1.1651899439196283, -1.1581...\n", + " -1.1590\n", + " False\n", + " {'neg_log_loss': [-0.8879810952815211, -1.1439...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", " None\n", - " sklearn.preprocessing._polynomial.PolynomialFe...\n", - " {'degree': 2, 'include_bias': 'True', 'interac...\n", + " None\n", + " sklearn.feature_selection._univariate_selectio...\n", + " None\n", " sklearn.ensemble._forest.RandomForestClassifier\n", - " {'bootstrap': 'False', 'criterion': 'entropy',...\n", + " None\n", " \n", " \n", - " 7\n", - " 37\n", - " 1.716840e+09\n", - " 3.501099\n", + " 8\n", + " 40\n", + " 1.728326e+09\n", + " 5.996469\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.2859\n", + " -1.2337\n", " True\n", - " {'neg_log_loss': [-1.2933575482942903, -1.2889...\n", + " {'neg_log_loss': [-1.2702149477323301, -1.2421...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", - " {'degree': 2, 'include_bias': 'False', 'intera...\n", + " {'degree': 3, 'include_bias': 'False', 'intera...\n", " sklearn.ensemble._forest.RandomForestClassifier\n", " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", " \n", " \n", - " 8\n", - " 38\n", - " 1.716840e+09\n", - " 4.022135\n", + " 9\n", + " 13\n", + " 1.728326e+09\n", + " 0.557217\n", + " (ColumnTransformer(transformers=[('num',\\n ...\n", + " True\n", + " -1.4292\n", + " False\n", + " {'neg_log_loss': [-1.463201571062134, -1.42270...\n", + " ok\n", + " None\n", + " None\n", + " None\n", + " None\n", + " None\n", + " sklearn.linear_model.LogisticRegression\n", + " None\n", + " \n", + " \n", + " 10\n", + " 32\n", + " 1.728326e+09\n", + " 4.584987\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.2873\n", + " -1.4742\n", " True\n", - " {'neg_log_loss': [-1.3000910389764708, -1.2896...\n", + " {'neg_log_loss': [-1.4736780469349962, -1.4800...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", - " {'degree': 2, 'include_bias': 'False', 'intera...\n", + " {'degree': 3, 'include_bias': 'True', 'interac...\n", " sklearn.ensemble._forest.RandomForestClassifier\n", - " {'bootstrap': 'True', 'criterion': 'gini', 'ma...\n", + " {'bootstrap': 'False', 'criterion': 'entropy',...\n", " \n", " \n", - " 9\n", - " 35\n", - " 1.716840e+09\n", - " 6.834368\n", + " 11\n", + " 39\n", + " 1.728326e+09\n", + " 5.738648\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.2885\n", + " -1.4775\n", " True\n", - " {'neg_log_loss': [-1.2962518843477562, -1.2758...\n", + " {'neg_log_loss': [-1.4825927688051026, -1.4843...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", - " {'degree': 3, 'include_bias': 'True', 'interac...\n", + " {'degree': 3, 'include_bias': 'False', 'intera...\n", " sklearn.ensemble._forest.RandomForestClassifier\n", - " {'bootstrap': 'True', 'criterion': 'gini', 'ma...\n", + " {'bootstrap': 'True', 'criterion': 'entropy', ...\n", " \n", " \n", - " 10\n", - " 30\n", - " 1.716840e+09\n", - " 1.111234\n", + " 12\n", + " 31\n", + " 1.728326e+09\n", + " 1.017316\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -1.3710\n", + " -1.4902\n", " False\n", - " {'neg_log_loss': [-1.2476361495435986, -1.5338...\n", + " {'neg_log_loss': [-1.24194032091799, -2.034358...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.feature_selection._univariate_selectio...\n", " None\n", @@ -2173,18 +2205,18 @@ " None\n", " \n", " \n", - " 11\n", - " 34\n", - " 1.716840e+09\n", - " 3.769047\n", + " 13\n", + " 41\n", + " 1.728326e+09\n", + " 2.525508\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.4911\n", + " -1.4922\n", " True\n", - " {'neg_log_loss': [-1.4906373918813967, -1.4923...\n", + " {'neg_log_loss': [-1.4849048424317384, -1.4926...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", " {'degree': 2, 'include_bias': 'True', 'interac...\n", @@ -2192,110 +2224,110 @@ " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", " \n", " \n", - " 12\n", - " 39\n", - " 1.716840e+09\n", - " 3.626931\n", + " 14\n", + " 33\n", + " 1.728326e+09\n", + " 6.054881\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.4972\n", + " -1.4964\n", " True\n", - " {'neg_log_loss': [-1.5050712278438176, -1.4960...\n", + " {'neg_log_loss': [-1.4927437353331847, -1.5011...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", - " {'degree': 2, 'include_bias': 'False', 'intera...\n", + " {'degree': 3, 'include_bias': 'False', 'intera...\n", " sklearn.ensemble._forest.RandomForestClassifier\n", " {'bootstrap': 'True', 'criterion': 'entropy', ...\n", " \n", " \n", - " 13\n", - " 33\n", - " 1.716840e+09\n", - " 3.888649\n", + " 15\n", + " 38\n", + " 1.728326e+09\n", + " 2.480738\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.5044\n", + " -1.4981\n", " True\n", - " {'neg_log_loss': [-1.5006917142343803, -1.5077...\n", + " {'neg_log_loss': [-1.5005412486743204, -1.5085...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", " {'degree': 2, 'include_bias': 'False', 'intera...\n", " sklearn.ensemble._forest.RandomForestClassifier\n", - " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", + " {'bootstrap': 'False', 'criterion': 'entropy',...\n", " \n", " \n", - " 14\n", - " 31\n", - " 1.716840e+09\n", - " 4.032881\n", + " 16\n", + " 37\n", + " 1.728326e+09\n", + " 2.558972\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.5191\n", + " -1.5052\n", " True\n", - " {'neg_log_loss': [-1.5181759245255042, -1.5255...\n", + " {'neg_log_loss': [-1.4955942790677381, -1.5071...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", - " {'degree': 2, 'include_bias': 'False', 'intera...\n", + " {'degree': 2, 'include_bias': 'True', 'interac...\n", " sklearn.ensemble._forest.RandomForestClassifier\n", - " {'bootstrap': 'True', 'criterion': 'gini', 'ma...\n", + " {'bootstrap': 'False', 'criterion': 'entropy',...\n", " \n", " \n", - " 15\n", - " 40\n", - " 1.716840e+09\n", - " 4.946885\n", + " 17\n", + " 36\n", + " 1.728326e+09\n", + " 2.910127\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.5267\n", + " -1.5055\n", " True\n", - " {'neg_log_loss': [-1.5283438823816966, -1.5269...\n", + " {'neg_log_loss': [-1.5096610839264617, -1.5155...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", - " {'degree': 3, 'include_bias': 'True', 'interac...\n", + " {'degree': 2, 'include_bias': 'False', 'intera...\n", " sklearn.ensemble._forest.RandomForestClassifier\n", - " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", + " {'bootstrap': 'False', 'criterion': 'entropy',...\n", " \n", " \n", - " 16\n", - " 36\n", - " 1.716840e+09\n", - " 4.399114\n", + " 18\n", + " 35\n", + " 1.728326e+09\n", + " 6.830578\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " False\n", - " -1.5345\n", + " -1.5217\n", " True\n", - " {'neg_log_loss': [-1.5307666763815162, -1.5358...\n", + " {'neg_log_loss': [-1.5208482591867625, -1.5264...\n", " ok\n", " None\n", - " sklearn.feature_selection._variance_threshold....\n", + " None\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", " {'degree': 3, 'include_bias': 'True', 'interac...\n", " sklearn.ensemble._forest.RandomForestClassifier\n", - " {'bootstrap': 'False', 'criterion': 'entropy',...\n", + " {'bootstrap': 'False', 'criterion': 'gini', 'm...\n", " \n", " \n", - " 17\n", + " 19\n", " 3\n", - " 1.716840e+09\n", - " 0.160419\n", + " 1.728326e+09\n", + " 0.209384\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -1.8132\n", + " -1.8294\n", " False\n", - " {'neg_log_loss': [-2.055237104076319, -1.85837...\n", + " {'neg_log_loss': [-1.7426325295846308, -1.4747...\n", " ok\n", " None\n", " None\n", @@ -2306,15 +2338,15 @@ " None\n", " \n", " \n", - " 18\n", - " 13\n", - " 1.716840e+09\n", - " 1.385043\n", + " 20\n", + " 14\n", + " 1.728326e+09\n", + " 1.522974\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -3.3543\n", + " -2.4741\n", " False\n", - " {'neg_log_loss': [-2.7523470066860254, -2.4712...\n", + " {'neg_log_loss': [-2.303620361587193, -2.69780...\n", " ok\n", " None\n", " None\n", @@ -2325,15 +2357,15 @@ " None\n", " \n", " \n", - " 19\n", + " 21\n", " 6\n", - " 1.716840e+09\n", - " 0.278272\n", + " 1.728326e+09\n", + " 0.190030\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -6.4282\n", + " -6.8842\n", " False\n", - " {'neg_log_loss': [-6.3949843461963, -7.0119255...\n", + " {'neg_log_loss': [-8.551792881488588, -6.36601...\n", " ok\n", " None\n", " None\n", @@ -2344,15 +2376,15 @@ " None\n", " \n", " \n", - " 20\n", + " 22\n", " 4\n", - " 1.716840e+09\n", - " 0.178737\n", + " 1.728326e+09\n", + " 0.227942\n", " (ColumnTransformer(transformers=[('num',\\n ...\n", " True\n", - " -14.3200\n", + " -13.9791\n", " False\n", - " {'neg_log_loss': [-11.689833531605561, -14.855...\n", + " {'neg_log_loss': [-13.881677318781607, -14.612...\n", " ok\n", " None\n", " None\n", @@ -2368,154 +2400,166 @@ ], "text/plain": [ " order time runtime \\\n", - "0 28 1.716840e+09 2.947976 \n", - "1 21 1.716840e+09 1.659287 \n", - "2 1 1.716840e+09 1.398526 \n", - "3 16 1.716840e+09 1.897339 \n", - "4 0 1.716840e+09 1.420007 \n", - "5 29 1.716840e+09 1.536983 \n", - "6 32 1.716840e+09 4.452793 \n", - "7 37 1.716840e+09 3.501099 \n", - "8 38 1.716840e+09 4.022135 \n", - "9 35 1.716840e+09 6.834368 \n", - "10 30 1.716840e+09 1.111234 \n", - "11 34 1.716840e+09 3.769047 \n", - "12 39 1.716840e+09 3.626931 \n", - "13 33 1.716840e+09 3.888649 \n", - "14 31 1.716840e+09 4.032881 \n", - "15 40 1.716840e+09 4.946885 \n", - "16 36 1.716840e+09 4.399114 \n", - "17 3 1.716840e+09 0.160419 \n", - "18 13 1.716840e+09 1.385043 \n", - "19 6 1.716840e+09 0.278272 \n", - "20 4 1.716840e+09 0.178737 \n", + "0 29 1.728326e+09 2.947797 \n", + "1 1 1.728326e+09 2.122452 \n", + "2 22 1.728326e+09 1.680269 \n", + "3 17 1.728326e+09 1.965827 \n", + "4 34 1.728326e+09 5.485827 \n", + "5 0 1.728326e+09 3.453922 \n", + "6 28 1.728326e+09 3.102600 \n", + "7 30 1.728326e+09 1.492167 \n", + "8 40 1.728326e+09 5.996469 \n", + "9 13 1.728326e+09 0.557217 \n", + "10 32 1.728326e+09 4.584987 \n", + "11 39 1.728326e+09 5.738648 \n", + "12 31 1.728326e+09 1.017316 \n", + "13 41 1.728326e+09 2.525508 \n", + "14 33 1.728326e+09 6.054881 \n", + "15 38 1.728326e+09 2.480738 \n", + "16 37 1.728326e+09 2.558972 \n", + "17 36 1.728326e+09 2.910127 \n", + "18 35 1.728326e+09 6.830578 \n", + "19 3 1.728326e+09 0.209384 \n", + "20 14 1.728326e+09 1.522974 \n", + "21 6 1.728326e+09 0.190030 \n", + "22 4 1.728326e+09 0.227942 \n", "\n", " pipeline default_hp \\\n", "0 (ColumnTransformer(transformers=[('num',\\n ... True \n", "1 (ColumnTransformer(transformers=[('num',\\n ... True \n", "2 (ColumnTransformer(transformers=[('num',\\n ... True \n", "3 (ColumnTransformer(transformers=[('num',\\n ... True \n", - "4 (ColumnTransformer(transformers=[('num',\\n ... True \n", + "4 (ColumnTransformer(transformers=[('num',\\n ... False \n", "5 (ColumnTransformer(transformers=[('num',\\n ... True \n", - "6 (ColumnTransformer(transformers=[('num',\\n ... False \n", - "7 (ColumnTransformer(transformers=[('num',\\n ... False \n", + "6 (ColumnTransformer(transformers=[('num',\\n ... True \n", + "7 (ColumnTransformer(transformers=[('num',\\n ... True \n", "8 (ColumnTransformer(transformers=[('num',\\n ... False \n", - "9 (ColumnTransformer(transformers=[('num',\\n ... False \n", - "10 (ColumnTransformer(transformers=[('num',\\n ... True \n", + "9 (ColumnTransformer(transformers=[('num',\\n ... True \n", + "10 (ColumnTransformer(transformers=[('num',\\n ... False \n", "11 (ColumnTransformer(transformers=[('num',\\n ... False \n", - "12 (ColumnTransformer(transformers=[('num',\\n ... False \n", + "12 (ColumnTransformer(transformers=[('num',\\n ... True \n", "13 (ColumnTransformer(transformers=[('num',\\n ... False \n", "14 (ColumnTransformer(transformers=[('num',\\n ... False \n", "15 (ColumnTransformer(transformers=[('num',\\n ... False \n", "16 (ColumnTransformer(transformers=[('num',\\n ... False \n", - "17 (ColumnTransformer(transformers=[('num',\\n ... True \n", - "18 (ColumnTransformer(transformers=[('num',\\n ... True \n", + "17 (ColumnTransformer(transformers=[('num',\\n ... False \n", + "18 (ColumnTransformer(transformers=[('num',\\n ... False \n", "19 (ColumnTransformer(transformers=[('num',\\n ... True \n", "20 (ColumnTransformer(transformers=[('num',\\n ... True \n", + "21 (ColumnTransformer(transformers=[('num',\\n ... True \n", + "22 (ColumnTransformer(transformers=[('num',\\n ... True \n", "\n", " neg_log_loss new_best evaluation_report \\\n", - "0 -0.7442 True {'neg_log_loss': [-0.7438252244500024, -0.8369... \n", - "1 -0.7972 True {'neg_log_loss': [-0.8040130707520944, -0.8367... \n", - "2 -0.8218 True {'neg_log_loss': [-0.7985448420232011, -0.8385... \n", - "3 -0.8747 False {'neg_log_loss': [-0.890343561760756, -0.92738... \n", - "4 -0.8969 True {'neg_log_loss': [-0.9249840584167478, -0.8883... \n", - "5 -1.1550 False {'neg_log_loss': [-1.1235866063406887, -1.1675... \n", - "6 -1.1597 True {'neg_log_loss': [-1.1651899439196283, -1.1581... \n", - "7 -1.2859 True {'neg_log_loss': [-1.2933575482942903, -1.2889... \n", - "8 -1.2873 True {'neg_log_loss': [-1.3000910389764708, -1.2896... \n", - "9 -1.2885 True {'neg_log_loss': [-1.2962518843477562, -1.2758... \n", - "10 -1.3710 False {'neg_log_loss': [-1.2476361495435986, -1.5338... \n", - "11 -1.4911 True {'neg_log_loss': [-1.4906373918813967, -1.4923... \n", - "12 -1.4972 True {'neg_log_loss': [-1.5050712278438176, -1.4960... \n", - "13 -1.5044 True {'neg_log_loss': [-1.5006917142343803, -1.5077... \n", - "14 -1.5191 True {'neg_log_loss': [-1.5181759245255042, -1.5255... \n", - "15 -1.5267 True {'neg_log_loss': [-1.5283438823816966, -1.5269... \n", - "16 -1.5345 True {'neg_log_loss': [-1.5307666763815162, -1.5358... \n", - "17 -1.8132 False {'neg_log_loss': [-2.055237104076319, -1.85837... \n", - "18 -3.3543 False {'neg_log_loss': [-2.7523470066860254, -2.4712... \n", - "19 -6.4282 False {'neg_log_loss': [-6.3949843461963, -7.0119255... \n", - "20 -14.3200 False {'neg_log_loss': [-11.689833531605561, -14.855... \n", + "0 -0.7627 True {'neg_log_loss': [-0.7863294976455495, -0.7634... \n", + "1 -0.8041 True {'neg_log_loss': [-0.7672424451231477, -0.7532... \n", + "2 -0.8271 False {'neg_log_loss': [-0.8780849948595296, -0.8649... \n", + "3 -0.8628 False {'neg_log_loss': [-0.8932091820019521, -0.8652... \n", + "4 -0.9799 True {'neg_log_loss': [-0.9702446225658047, -1.0076... \n", + "5 -1.0150 True {'neg_log_loss': [-0.8030745978803508, -1.1351... \n", + "6 -1.0335 False {'neg_log_loss': [-1.001467758467775, -1.04278... \n", + "7 -1.1590 False {'neg_log_loss': [-0.8879810952815211, -1.1439... \n", + "8 -1.2337 True {'neg_log_loss': [-1.2702149477323301, -1.2421... \n", + "9 -1.4292 False {'neg_log_loss': [-1.463201571062134, -1.42270... \n", + "10 -1.4742 True {'neg_log_loss': [-1.4736780469349962, -1.4800... \n", + "11 -1.4775 True {'neg_log_loss': [-1.4825927688051026, -1.4843... \n", + "12 -1.4902 False {'neg_log_loss': [-1.24194032091799, -2.034358... \n", + "13 -1.4922 True {'neg_log_loss': [-1.4849048424317384, -1.4926... \n", + "14 -1.4964 True {'neg_log_loss': [-1.4927437353331847, -1.5011... \n", + "15 -1.4981 True {'neg_log_loss': [-1.5005412486743204, -1.5085... \n", + "16 -1.5052 True {'neg_log_loss': [-1.4955942790677381, -1.5071... \n", + "17 -1.5055 True {'neg_log_loss': [-1.5096610839264617, -1.5155... \n", + "18 -1.5217 True {'neg_log_loss': [-1.5208482591867625, -1.5264... \n", + "19 -1.8294 False {'neg_log_loss': [-1.7426325295846308, -1.4747... \n", + "20 -2.4741 False {'neg_log_loss': [-2.303620361587193, -2.69780... \n", + "21 -6.8842 False {'neg_log_loss': [-8.551792881488588, -6.36601... \n", + "22 -13.9791 False {'neg_log_loss': [-13.881677318781607, -14.612... \n", "\n", " status exception data-pre-processor_class \\\n", - "0 ok None sklearn.feature_selection._variance_threshold.... \n", - "1 ok None sklearn.feature_selection._variance_threshold.... \n", - "2 ok None None \n", + "0 ok None None \n", + "1 ok None None \n", + "2 ok None sklearn.feature_selection._variance_threshold.... \n", "3 ok None sklearn.preprocessing._data.Normalizer \n", "4 ok None None \n", - "5 ok None sklearn.feature_selection._variance_threshold.... \n", - "6 ok None sklearn.feature_selection._variance_threshold.... \n", - "7 ok None sklearn.feature_selection._variance_threshold.... \n", - "8 ok None sklearn.feature_selection._variance_threshold.... \n", - "9 ok None sklearn.feature_selection._variance_threshold.... \n", - "10 ok None sklearn.feature_selection._variance_threshold.... \n", - "11 ok None sklearn.feature_selection._variance_threshold.... \n", - "12 ok None sklearn.feature_selection._variance_threshold.... \n", - "13 ok None sklearn.feature_selection._variance_threshold.... \n", - "14 ok None sklearn.feature_selection._variance_threshold.... \n", - "15 ok None sklearn.feature_selection._variance_threshold.... \n", - "16 ok None sklearn.feature_selection._variance_threshold.... \n", + "5 ok None None \n", + "6 ok None None \n", + "7 ok None None \n", + "8 ok None None \n", + "9 ok None None \n", + "10 ok None None \n", + "11 ok None None \n", + "12 ok None None \n", + "13 ok None None \n", + "14 ok None None \n", + "15 ok None None \n", + "16 ok None None \n", "17 ok None None \n", "18 ok None None \n", "19 ok None None \n", "20 ok None None \n", + "21 ok None None \n", + "22 ok None None \n", "\n", " data-pre-processor_hps feature-pre-processor_class \\\n", "0 None sklearn.preprocessing._polynomial.PolynomialFe... \n", "1 None None \n", "2 None None \n", "3 None None \n", - "4 None None \n", - "5 None sklearn.feature_selection._univariate_selectio... \n", - "6 None sklearn.preprocessing._polynomial.PolynomialFe... \n", - "7 None sklearn.preprocessing._polynomial.PolynomialFe... \n", + "4 None sklearn.preprocessing._polynomial.PolynomialFe... \n", + "5 None None \n", + "6 None sklearn.decomposition._pca.PCA \n", + "7 None sklearn.feature_selection._univariate_selectio... \n", "8 None sklearn.preprocessing._polynomial.PolynomialFe... \n", - "9 None sklearn.preprocessing._polynomial.PolynomialFe... \n", - "10 None sklearn.feature_selection._univariate_selectio... \n", + "9 None None \n", + "10 None sklearn.preprocessing._polynomial.PolynomialFe... \n", "11 None sklearn.preprocessing._polynomial.PolynomialFe... \n", - "12 None sklearn.preprocessing._polynomial.PolynomialFe... \n", + "12 None sklearn.feature_selection._univariate_selectio... \n", "13 None sklearn.preprocessing._polynomial.PolynomialFe... \n", "14 None sklearn.preprocessing._polynomial.PolynomialFe... \n", "15 None sklearn.preprocessing._polynomial.PolynomialFe... \n", "16 None sklearn.preprocessing._polynomial.PolynomialFe... \n", - "17 None None \n", - "18 None None \n", + "17 None sklearn.preprocessing._polynomial.PolynomialFe... \n", + "18 None sklearn.preprocessing._polynomial.PolynomialFe... \n", "19 None None \n", "20 None None \n", + "21 None None \n", + "22 None None \n", "\n", " feature-pre-processor_hps \\\n", "0 None \n", "1 None \n", "2 None \n", "3 None \n", - "4 None \n", + "4 {'degree': 2, 'include_bias': 'True', 'interac... \n", "5 None \n", - "6 {'degree': 2, 'include_bias': 'True', 'interac... \n", - "7 {'degree': 2, 'include_bias': 'False', 'intera... \n", - "8 {'degree': 2, 'include_bias': 'False', 'intera... \n", - "9 {'degree': 3, 'include_bias': 'True', 'interac... \n", - "10 None \n", - "11 {'degree': 2, 'include_bias': 'True', 'interac... \n", - "12 {'degree': 2, 'include_bias': 'False', 'intera... \n", - "13 {'degree': 2, 'include_bias': 'False', 'intera... \n", - "14 {'degree': 2, 'include_bias': 'False', 'intera... \n", - "15 {'degree': 3, 'include_bias': 'True', 'interac... \n", - "16 {'degree': 3, 'include_bias': 'True', 'interac... \n", - "17 None \n", - "18 None \n", + "6 None \n", + "7 None \n", + "8 {'degree': 3, 'include_bias': 'False', 'intera... \n", + "9 None \n", + "10 {'degree': 3, 'include_bias': 'True', 'interac... \n", + "11 {'degree': 3, 'include_bias': 'False', 'intera... \n", + "12 None \n", + "13 {'degree': 2, 'include_bias': 'True', 'interac... \n", + "14 {'degree': 3, 'include_bias': 'False', 'intera... \n", + "15 {'degree': 2, 'include_bias': 'False', 'intera... \n", + "16 {'degree': 2, 'include_bias': 'True', 'interac... \n", + "17 {'degree': 2, 'include_bias': 'False', 'intera... \n", + "18 {'degree': 3, 'include_bias': 'True', 'interac... \n", "19 None \n", "20 None \n", + "21 None \n", + "22 None \n", "\n", " learner_class \\\n", "0 sklearn.ensemble._forest.RandomForestClassifier \n", "1 sklearn.ensemble._forest.RandomForestClassifier \n", "2 sklearn.ensemble._forest.RandomForestClassifier \n", "3 sklearn.ensemble._forest.RandomForestClassifier \n", - "4 sklearn.ensemble._forest.ExtraTreesClassifier \n", - "5 sklearn.ensemble._forest.RandomForestClassifier \n", + "4 sklearn.ensemble._forest.RandomForestClassifier \n", + "5 sklearn.ensemble._forest.ExtraTreesClassifier \n", "6 sklearn.ensemble._forest.RandomForestClassifier \n", "7 sklearn.ensemble._forest.RandomForestClassifier \n", "8 sklearn.ensemble._forest.RandomForestClassifier \n", - "9 sklearn.ensemble._forest.RandomForestClassifier \n", + "9 sklearn.linear_model.LogisticRegression \n", "10 sklearn.ensemble._forest.RandomForestClassifier \n", "11 sklearn.ensemble._forest.RandomForestClassifier \n", "12 sklearn.ensemble._forest.RandomForestClassifier \n", @@ -2523,33 +2567,37 @@ "14 sklearn.ensemble._forest.RandomForestClassifier \n", "15 sklearn.ensemble._forest.RandomForestClassifier \n", "16 sklearn.ensemble._forest.RandomForestClassifier \n", - "17 sklearn.naive_bayes.BernoulliNB \n", - "18 sklearn.neural_network._multilayer_perceptron.... \n", - "19 sklearn.neighbors._classification.KNeighborsCl... \n", - "20 sklearn.tree._classes.DecisionTreeClassifier \n", + "17 sklearn.ensemble._forest.RandomForestClassifier \n", + "18 sklearn.ensemble._forest.RandomForestClassifier \n", + "19 sklearn.naive_bayes.BernoulliNB \n", + "20 sklearn.neural_network._multilayer_perceptron.... \n", + "21 sklearn.neighbors._classification.KNeighborsCl... \n", + "22 sklearn.tree._classes.DecisionTreeClassifier \n", "\n", " learner_hps \n", "0 None \n", "1 None \n", "2 None \n", "3 None \n", - "4 None \n", + "4 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", "5 None \n", - "6 {'bootstrap': 'False', 'criterion': 'entropy',... \n", - "7 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", - "8 {'bootstrap': 'True', 'criterion': 'gini', 'ma... \n", - "9 {'bootstrap': 'True', 'criterion': 'gini', 'ma... \n", - "10 None \n", - "11 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", - "12 {'bootstrap': 'True', 'criterion': 'entropy', ... \n", + "6 None \n", + "7 None \n", + "8 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", + "9 None \n", + "10 {'bootstrap': 'False', 'criterion': 'entropy',... \n", + "11 {'bootstrap': 'True', 'criterion': 'entropy', ... \n", + "12 None \n", "13 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", - "14 {'bootstrap': 'True', 'criterion': 'gini', 'ma... \n", - "15 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", + "14 {'bootstrap': 'True', 'criterion': 'entropy', ... \n", + "15 {'bootstrap': 'False', 'criterion': 'entropy',... \n", "16 {'bootstrap': 'False', 'criterion': 'entropy',... \n", - "17 None \n", - "18 None \n", + "17 {'bootstrap': 'False', 'criterion': 'entropy',... \n", + "18 {'bootstrap': 'False', 'criterion': 'gini', 'm... \n", "19 None \n", - "20 None " + "20 None \n", + "21 None \n", + "22 None " ] }, "execution_count": 9, @@ -2571,7 +2619,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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bGysvv/+e+3atUuStGXLFq1du1aDBg2SVPvvn65/+BmAi5zD4dD06dPVr18/denSRZKUnZ0td3d3+fv7Vzu2efPmys7ONiEl0LBs3bpVffv2VUlJiby9vbVixQp16tRJycnJXJuAiZYsWaJNmzYpISHhpH28dwLmiomJ0bx589ShQwcdOnRIf//733X55Zdr27ZtXJ+Aifbt26fZs2frwQcf1KOPPqqEhATdf//9cnd31/jx453XYPPmzaudx/UJXFiffvqp8vPzNWHCBEn8bguYbcaMGbLb7YqIiJCLi4sqKyv1zDPPaNy4cZJU6++flCZo8KZOnapt27ZVm/MZgLk6dOig5ORk2Ww2ffzxxxo/frzWrFljdiygQUtPT9ef//xnrVq1So0aNTI7DoD/ceJbd5LUrVs3xcTEqFWrVlq6dKk8PT1NTAY0bA6HQ7169dKzzz4rSYqMjNS2bds0Z84cjR8/3uR0AE549913NWjQIIWGhpodBYCkpUuXauHChVq0aJE6d+6s5ORkTZ8+XaGhoRfk/ZPpudCgTZs2TV9++aVWr16tli1bOrcHBwerrKxM+fn51Y7PyclRcHDwBU4JNDzu7u5q3769oqKiNGvWLHXv3l3//ve/uTYBEyUlJSk3N1c9e/aUq6urXF1dtWbNGr366qtydXVV8+bNuT6BOsTf31+XXnqp9uzZw/snYKKQkBB16tSp2raOHTs6p887cQ3m5ORUO4brE7hwDh48qO+++0533XWXcxvvnYC5Hn74Yc2YMUOjR49W165dddttt+mBBx7QrFmzJNX++yelCRokwzA0bdo0rVixQj/88IPatGlTbX9UVJTc3Nz0/fffO7elpqYqLS1Nffv2vdBxgQbP4XCotLSUaxMwUf/+/bV161YlJyc7H7169dK4ceOc/z/XJ1B3FBYWau/evQoJCeH9EzBRv379lJqaWm3brl271KpVK0lSmzZtFBwcXO36tNvtiouL4/oELpD3339fQUFBuuGGG5zbeO8EzFVcXCyrtXp14eLiIofDIan23z+ZngsN0tSpU7Vo0SJ99tln8vHxcc515+fnJ09PT/n5+WnixIl68MEHFRAQIF9fX913333q27ev+vTpY3J6oH6bOXOmBg0apPDwcBUUFGjRokX68ccf9e2333JtAiby8fFxrv11gpeXl5o2berczvUJmOcvf/mLhgwZolatWikrK0tPPPGEXFxcNGbMGN4/ARM98MADio2N1bPPPqtRo0YpPj5eb731lt566y1JksVi0fTp0/X000/rkksuUZs2bfTYY48pNDRUQ4cONTc80AA4HA69//77Gj9+vFxdf/uYlPdOwFxDhgzRM888o/DwcHXu3FmbN2/Wv/71L915552Sav/9k9IEDdLs2bMlSVdddVW17e+//75z0a+XX35ZVqtVw4cPV2lpqa6//nq9+eabFzgp0PDk5ubq9ttv16FDh+Tn56du3brp22+/1bXXXiuJaxOoy7g+AfNkZGRozJgxOnr0qAIDA3XZZZdp48aNCgwMlMT1CZild+/eWrFihWbOnKl//OMfatOmjV555RXnQraS9H//938qKirS3Xffrfz8fF122WVauXIla4gBF8B3332ntLQ05wex/433TsA8r732mh577DHde++9ys3NVWhoqCZPnqzHH3/ceUxtvn9aDMMw/vCzAAAAAAAAAAAAXORY0wQAAAAAAAAAAECUJgAAAAAAAAAAAJIoTQAAAAAAAAAAACRRmgAAAAAAAAAAAEiiNAEAAAAAAAAAAJBEaQIAAAAAAAAAACCJ0gQAAAAAAAAAAEASpQkAAAAAAAAAAKZ45plnFBsbq8aNG8vf3/+szrFYLKd8/POf/5QkHThwQBMnTlSbNm3k6empdu3a6YknnlBZWVm15/n222/Vp08f+fj4KDAwUMOHD9eBAwec+9euXat+/fqpadOm8vT0VEREhF5++eVqzzFr1iz17t1bPj4+CgoK0tChQ5WamnpS5g0bNuiaa66Rl5eXfH19dcUVV+j48eN/6O/hfxUUFGj69Olq1aqVPD09FRsbq4SEhBo/D6UJAAAAAAAAAAC15KqrrtK8efNOua+srEwjR47UlClTzvr5Dh06VO3x3nvvyWKxaPjw4ZKklJQUORwOzZ07V9u3b9fLL7+sOXPm6NFHH3U+x/79+3XTTTfpmmuuUXJysr799lsdOXJEw4YNcx7j5eWladOm6aefftLOnTv1t7/9TX/729/01ltvOY9Zs2aNpk6dqo0bN2rVqlUqLy/Xddddp6KiIucxGzZs0MCBA3XdddcpPj5eCQkJmjZtmqzW3+qJc/l7+F933XWXVq1apfnz52vr1q267rrrNGDAAGVmZtboeSyGYRjnnAIAAAAAAAAAAJzWVVddpQkTJmjChAmnPWbevHmaPn268vPza/z8Q4cOVUFBgb7//vvTHvPPf/5Ts2fP1r59+yRJH3/8scaMGaPS0lJnefHFF1/opptuUmlpqdzc3E75PMOGDZOXl5fmz59/yv2HDx9WUFCQ1qxZoyuuuEKS1KdPH1177bV66qmnfvdnOdPfw7Zt2/Twww/r559/lpeXl6677jq9/PLLatasmY4fPy4fHx999tlnuuGGG5znREVFadCgQXr66ad/97VPYKQJAAAAAAAAAAAXoZycHH311VeaOHHiGY+z2WwKCAhw/jkqKkpWq1Xvv/++KisrZbPZNH/+fA0YMOC0hcnmzZu1fv16XXnllWd8HUnO18rNzVVcXJyCgoIUGxur5s2b68orr9TatWtr9HPm5+frmmuuUWRkpBITE7Vy5Url5ORo1KhRkqSKigpVVlaqUaNG1c7z9PSs8WtRmgAAAAAAAAAAcBH64IMP5OPjU21arf+1Z88evfbaa5o8ebJzW5s2bfSf//xHjz76qDw8POTv76+MjAwtXbr0pPNbtmwpDw8P9erVS1OnTtVdd911ytdxOByaPn26+vXrpy5dukiSc2TLk08+qUmTJmnlypXq2bOn+vfvr927d5/1z/n6668rMjJSzz77rCIiIhQZGan33ntPq1ev1q5du+Tj46O+ffvqqaeeUlZWliorK7VgwQJt2LBBhw4dOuvXkShNAAAAAAAAAAA4b5599ll5e3s7Hz///LPuueeeatvS0tLOy2u99957Gjdu3EkjLE7IzMzUwIEDNXLkSE2aNMm5PTs7W5MmTdL48eOVkJCgNWvWyN3dXSNGjND/rujx888/KzExUXPmzNErr7yixYsXn/K1pk6dqm3btmnJkiXObQ6HQ5I0efJk3XHHHYqMjNTLL7+sDh066L333jvrn3PLli1avXp1tb/DiIgISdLevXslSfPnz5dhGGrRooU8PDz06quvasyYMdXWTjkbrjU6GgAAAAAAAAAAnNY999zjnDZKksaNG6fhw4dXGw0SGhr6h1/n559/Vmpqqj766KNT7s/KytLVV1+t2NjYaou3S9Ibb7whPz8/vfDCC85tCxYsUFhYmOLi4tSnTx/n9jZt2kiSunbtqpycHD355JMaM2ZMteebNm2avvzyS/30009q2bKlc3tISIgkqVOnTtWO79ixY42Ko8LCQg0ZMkTPP//8SftOvEa7du20Zs0aFRUVyW63KyQkRLfccovatm171q8jUZoAAAAAAAAAAHDeBAQEVFs/xNPTU0FBQWrfvv15fZ13331XUVFR6t69+0n7MjMzdfXVVysqKkrvv//+SaMtiouLT9rm4uIi6bfRIaficDhUWlrq/LNhGLrvvvu0YsUK/fjjj86C5YTWrVsrNDRUqamp1bbv2rVLgwYNOrsfVFLPnj21fPlytW7dWq6uZ641vLy85OXlpWPHjunbb7+tVgydDabnAgAAAAAAAADABGlpaUpOTlZaWpoqKyuVnJys5ORkFRYWOo+JiIjQihUrqp1nt9u1bNmyU64vkpmZqauuukrh4eF68cUXdfjwYWVnZys7O9t5zA033KCEhAT94x//0O7du7Vp0ybdcccdatWqlSIjIyVVjUb54osvtHv3bu3evVvvvvuuXnzxRd16663O55k6daoWLFigRYsWycfHx/k6x48flyRZLBY9/PDDevXVV/Xxxx9rz549euyxx5SSklJt8frf+3uYOnWq8vLyNGbMGCUkJGjv3r369ttvdccdd6iyslKS9O2332rlypXav3+/Vq1apauvvloRERG64447avS/CSNNAAAAAAAAAAAwweOPP64PPvjA+ecThcXq1at11VVXSZJSU1Nls9mqnbdkyRIZhnHSNFmStGrVKu3Zs0d79uypNlWWJOd6Jddcc40WLVqkF154QS+88IIaN26svn37auXKlfL09JRUNapk5syZ2r9/v1xdXdWuXTs9//zz1RaUnz17tiQ5s57w/vvva8KECZKk6dOnq6SkRA888IDy8vLUvXt3rVq1Su3atTvrv4fQ0FCtW7dOjzzyiK677jqVlpaqVatWGjhwoHPEjM1m08yZM5WRkaGAgAANHz5czzzzjNzc3M7wv8DJLMb/ruoCAAAAAAAAAADQADE9FwAAAAAAAAAAgChNAAAAAAAAAAAAJFGaAAAAAAAAAAAASKI0AQAAAAAAAAAAkERpAgAAAAAAAAAAIInSBAAAAAAAAAAAQBKlCQAAAAAAAAAAgCRKEwAAAAAAAAAAAEmUJgAAAAAAAAAAAJIoTQAAAAAAAAAAACRRmgAAAAAAAAAAAEiS/h8fY3TOvyZq3gAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -2632,23 +2680,23 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-05-27 21:54:55,084 - naiveautoml - INFO - Automatically inferred task type: classification\n", - "2024-05-27 21:54:55,121 - naiveautoml - INFO - There are 0 categorical features, which will be binarized.\n", - "2024-05-27 21:54:55,122 - naiveautoml - INFO - Missing values for the different attributes are [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0].\n", - "2024-05-27 21:54:55,122 - naiveautoml - INFO - Optimizing pipeline under the following conditions.\n", + "2024-10-07 20:36:21,312 - naiveautoml - INFO - Automatically inferred task type: classification\n", + "2024-10-07 20:36:21,342 - naiveautoml - INFO - There are 0 categorical features, which will be binarized.\n", + "2024-10-07 20:36:21,342 - naiveautoml - INFO - Missing values for the different attributes are [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0].\n", + "2024-10-07 20:36:21,343 - naiveautoml - INFO - Optimizing pipeline under the following conditions.\n", " \n", " Input type: (sparse: False)\n", - " Input shape: (426, 30)\n", - " Target type: (sparse: False)\n", - " Target shape: (426,).\n", - " Scoring: {'name': 'roc_auc', 'fun': make_scorer(roc_auc_score, response_method=('decision_function', 'predict_proba'))}\n", - " Other scorings computed: []\n", - " Timeout Overall: 30\n", - " Timeout per Candidate: 300\n", - " Max HPO iterations: 1000\n", - " Max HPO iterations w/o improvement: 100\n", - " Max HPO time (s) w/o improvement: 1800\n", - " \n", + " Input shape: (426, 30)\n", + " Target type: (sparse: False)\n", + " Target shape: (426,).\n", + " Scoring: {'name': 'roc_auc', 'fun': make_scorer(roc_auc_score, response_method=('decision_function', 'predict_proba'))}\n", + " Other scorings computed: []\n", + " Timeout Overall: 30\n", + " Timeout per Candidate: 300\n", + " Max HPO iterations: 1000\n", + " Max HPO iterations w/o improvement: 100\n", + " Max HPO time (s) w/o improvement: 1800\n", + " \n", "data-pre-processor\n", "\tsklearn.preprocessing._data.MinMaxScaler\n", "\tsklearn.preprocessing._data.Normalizer\n", @@ -2681,11 +2729,12 @@ "\tsklearn.svm._classes.SVC\n", "\tsklearn.svm._classes.SVC\n", "\tsklearn.svm._classes.SVC\n", + "\tsklearn.linear_model.LogisticRegression\n", "\tsklearn.neural_network._multilayer_perceptron.MLPClassifier\n", "\tsklearn.naive_bayes.MultinomialNBRandom HPO\n", - "2024-05-27 21:54:55,123 - naiveautoml - INFO - --------------------------------------------------\n", - "2024-05-27 21:54:55,124 - naiveautoml - INFO - Choosing Algorithm for each slot\n", - "2024-05-27 21:54:55,124 - naiveautoml - INFO - --------------------------------------------------\n" + "2024-10-07 20:36:21,344 - naiveautoml - INFO - --------------------------------------------------\n", + "2024-10-07 20:36:21,344 - naiveautoml - INFO - Choosing Algorithm for each slot\n", + "2024-10-07 20:36:21,345 - naiveautoml - INFO - --------------------------------------------------\n" ] }, { @@ -2703,106 +2752,108 @@ "name": "stderr", "output_type": "stream", "text": [ - " 0%| | 0/31 [00:00\n", " \n", " 0\n", - " 1.716840e+09\n", - " 0.582555\n", + " 1.728326e+09\n", + " 0.555445\n", " (ExtraTreesClassifier())\n", " True\n", - " 0.9915\n", + " 0.9909\n", " True\n", - " {'roc_auc': [1.0, 0.9814179531160664, 0.997141...\n", + " {'roc_auc': [0.9866908650937689, 0.97973381730...\n", " ok\n", " None\n", " None\n", @@ -3079,13 +3014,13 @@ " \n", " \n", " 1\n", - " 1.716840e+09\n", - " 1.153195\n", + " 1.728326e+09\n", + " 0.948848\n", " (RandomForestClassifier())\n", " True\n", - " 0.9961\n", + " 0.9939\n", " True\n", - " {'roc_auc': [0.9902801600914808, 1.0, 0.995997...\n", + " {'roc_auc': [0.9945553539019965, 0.98396854204...\n", " ok\n", " None\n", " None\n", @@ -3097,13 +3032,13 @@ " \n", " \n", " 2\n", - " 1.716840e+09\n", - " 1.270579\n", + " 1.728326e+09\n", + " 0.794000\n", " (HistGradientBoostingClassifier())\n", " True\n", - " 0.9969\n", + " 0.9972\n", " True\n", - " {'roc_auc': [0.9988564894225272, 1.0, 0.993710...\n", + " {'roc_auc': [0.9993950393224441, 0.99334543254...\n", " ok\n", " None\n", " None\n", @@ -3115,13 +3050,13 @@ " \n", " \n", " 3\n", - " 1.716840e+09\n", - " 0.036881\n", + " 1.728326e+09\n", + " 0.021051\n", " (BernoulliNB())\n", " True\n", - " 0.5132\n", + " 0.5158\n", " False\n", - " {'roc_auc': [0.5188679245283019, 0.50943396226...\n", + " {'roc_auc': [0.5, 0.5263157894736842, 0.517543...\n", " ok\n", " None\n", " None\n", @@ -3133,13 +3068,13 @@ " \n", " \n", " 4\n", - " 1.716840e+09\n", - " 0.060323\n", + " 1.728326e+09\n", + " 0.041461\n", " (DecisionTreeClassifier())\n", " True\n", - " 0.9013\n", + " 0.9152\n", " False\n", - " {'roc_auc': [0.9545454545454545, 0.88650657518...\n", + " {'roc_auc': [0.939201451905626, 0.939503932244...\n", " ok\n", " None\n", " None\n", @@ -3151,13 +3086,13 @@ " \n", " \n", " 5\n", - " 1.716840e+09\n", - " 0.032205\n", + " 1.728326e+09\n", + " 0.017106\n", " (GaussianNB())\n", " True\n", - " 0.9903\n", + " 0.9925\n", " False\n", - " {'roc_auc': [0.9914236706689536, 0.99828473413...\n", + " {'roc_auc': [0.9891107078039928, 0.99213551119...\n", " ok\n", " None\n", " None\n", @@ -3169,13 +3104,13 @@ " \n", " \n", " 6\n", - " 1.716840e+09\n", - " 0.044195\n", + " 1.728326e+09\n", + " 0.184520\n", " (KNeighborsClassifier())\n", " True\n", - " 0.9678\n", + " 0.9461\n", " False\n", - " {'roc_auc': [0.9751286449399656, 0.98284734133...\n", + " {'roc_auc': [0.9552329098608591, 0.93768905021...\n", " ok\n", " None\n", " None\n", @@ -3187,13 +3122,13 @@ " \n", " \n", " 7\n", - " 1.716840e+09\n", - " 0.043597\n", + " 1.728326e+09\n", + " 0.058902\n", " (LinearDiscriminantAnalysis())\n", " True\n", - " 0.9914\n", + " 0.9909\n", " False\n", - " {'roc_auc': [0.9857061177815895, 0.99599771297...\n", + " {'roc_auc': [0.9963702359346642, 0.96491228070...\n", " ok\n", " None\n", " None\n", @@ -3205,13 +3140,13 @@ " \n", " \n", " 8\n", - " 1.716840e+09\n", - " 0.032398\n", + " 1.728326e+09\n", + " 0.040780\n", " (QuadraticDiscriminantAnalysis())\n", " True\n", - " 0.9863\n", + " 0.9864\n", " False\n", - " {'roc_auc': [0.9965694682675814, 0.98399085191...\n", + " {'roc_auc': [0.9624924379915305, 0.99758015728...\n", " ok\n", " None\n", " None\n", @@ -3223,13 +3158,13 @@ " \n", " \n", " 9\n", - " 1.716840e+09\n", - " 3.127650\n", + " 1.728326e+09\n", + " 3.260550\n", " (SVC(kernel='linear'))\n", " True\n", - " 0.9868\n", + " 0.9926\n", " False\n", - " {'roc_auc': [0.9977129788450544, 0.97255574614...\n", + " {'roc_auc': [0.9975801572897761, 0.98850574712...\n", " ok\n", " None\n", " None\n", @@ -3241,13 +3176,13 @@ " \n", " \n", " 10\n", - " 1.716840e+09\n", - " 0.060098\n", + " 1.728326e+09\n", + " 0.055493\n", " (SVC())\n", " True\n", - " 0.9721\n", + " 0.9811\n", " False\n", - " {'roc_auc': [0.9685534591194969, 0.94568324757...\n", + " {'roc_auc': [0.9879007864488808, 0.98427102238...\n", " ok\n", " None\n", " None\n", @@ -3259,13 +3194,13 @@ " \n", " \n", " 11\n", - " 1.716840e+09\n", - " 0.066071\n", + " 1.728326e+09\n", + " 0.060643\n", " (SVC(kernel='poly'))\n", " True\n", - " 0.9680\n", + " 0.9787\n", " False\n", - " {'roc_auc': [0.9576901086335048, 0.94053744997...\n", + " {'roc_auc': [0.9885057471264368, 0.98366606170...\n", " ok\n", " None\n", " None\n", @@ -3277,13 +3212,13 @@ " \n", " \n", " 12\n", - " 1.716840e+09\n", - " 0.093112\n", + " 1.728326e+09\n", + " 0.085472\n", " (SVC(kernel='sigmoid'))\n", " True\n", - " 0.2492\n", + " 0.2052\n", " False\n", - " {'roc_auc': [0.3602058319039452, 0.26357918810...\n", + " {'roc_auc': [0.21536600120992133, 0.1657592256...\n", " ok\n", " None\n", " None\n", @@ -3295,13 +3230,31 @@ " \n", " \n", " 13\n", - " 1.716840e+09\n", - " 1.389846\n", + " 1.728326e+09\n", + " 0.481201\n", + " (LogisticRegression())\n", + " True\n", + " 0.9901\n", + " False\n", + " {'roc_auc': [0.9939503932244403, 0.98971566848...\n", + " ok\n", + " None\n", + " None\n", + " None\n", + " None\n", + " None\n", + " sklearn.linear_model.LogisticRegression\n", + " None\n", + " \n", + " \n", + " 14\n", + " 1.728326e+09\n", + " 4.706863\n", " (MLPClassifier())\n", " True\n", - " 0.9639\n", + " 0.9721\n", " False\n", - " {'roc_auc': [0.9759862778730704, 0.96455117209...\n", + " {'roc_auc': [0.9370840895341803, 0.98850574712...\n", " ok\n", " None\n", " None\n", @@ -3312,14 +3265,14 @@ " None\n", " \n", " \n", - " 14\n", - " 1.716840e+09\n", - " 0.024595\n", + " 15\n", + " 1.728326e+09\n", + " 0.049075\n", " (MultinomialNB())\n", " True\n", - " 0.9485\n", + " 0.9576\n", " False\n", - " {'roc_auc': [0.9522584333905089, 0.94511149228...\n", + " {'roc_auc': [0.984875983061101, 0.977011494252...\n", " ok\n", " None\n", " None\n", @@ -3330,9 +3283,9 @@ " None\n", " \n", " \n", - " 15\n", - " 1.716840e+09\n", - " 0.006696\n", + " 16\n", + " 1.728326e+09\n", + " 0.015053\n", " (MinMaxScaler(), HistGradientBoostingClassifie...\n", " True\n", " NaN\n", @@ -3348,14 +3301,14 @@ " None\n", " \n", " \n", - " 16\n", - " 1.716840e+09\n", - " 0.944081\n", + " 17\n", + " 1.728326e+09\n", + " 0.889329\n", " (Normalizer(), HistGradientBoostingClassifier())\n", " True\n", - " 0.9898\n", + " 0.9906\n", " False\n", - " {'roc_auc': [1.0, 0.9925671812464265, 0.998284...\n", + " {'roc_auc': [0.9770114942528735, 0.99153055051...\n", " ok\n", " None\n", " sklearn.preprocessing._data.Normalizer\n", @@ -3366,9 +3319,9 @@ " None\n", " \n", " \n", - " 17\n", - " 1.716840e+09\n", - " 0.005763\n", + " 18\n", + " 1.728326e+09\n", + " 0.004544\n", " (PowerTransformer(), HistGradientBoostingClass...\n", " True\n", " NaN\n", @@ -3384,9 +3337,9 @@ " None\n", " \n", " \n", - " 18\n", - " 1.716840e+09\n", - " 0.009366\n", + " 19\n", + " 1.728326e+09\n", + " 0.004509\n", " (QuantileTransformer(), HistGradientBoostingCl...\n", " True\n", " NaN\n", @@ -3402,9 +3355,9 @@ " None\n", " \n", " \n", - " 19\n", - " 1.716840e+09\n", - " 0.011938\n", + " 20\n", + " 1.728326e+09\n", + " 0.005793\n", " (RobustScaler(), HistGradientBoostingClassifie...\n", " True\n", " NaN\n", @@ -3420,9 +3373,9 @@ " None\n", " \n", " \n", - " 20\n", - " 1.716840e+09\n", - " 0.008092\n", + " 21\n", + " 1.728326e+09\n", + " 0.006627\n", " (StandardScaler(), HistGradientBoostingClassif...\n", " True\n", " NaN\n", @@ -3438,14 +3391,14 @@ " None\n", " \n", " \n", - " 21\n", - " 1.716840e+09\n", - " 0.947790\n", + " 22\n", + " 1.728326e+09\n", + " 0.886483\n", " (VarianceThreshold(), HistGradientBoostingClas...\n", " True\n", - " 0.9887\n", - " False\n", - " {'roc_auc': [0.9765580331618068, 0.99656946826...\n", + " 0.9983\n", + " True\n", + " {'roc_auc': [0.9963702359346642, 1.0, 0.998185...\n", " ok\n", " None\n", " sklearn.feature_selection._variance_threshold....\n", @@ -3456,17 +3409,17 @@ " None\n", " \n", " \n", - " 22\n", - " 1.716840e+09\n", - " 1.564505\n", - " (FastICA(), HistGradientBoostingClassifier())\n", + " 23\n", + " 1.728326e+09\n", + " 3.913556\n", + " (VarianceThreshold(), FastICA(), HistGradientB...\n", " True\n", - " 0.9456\n", + " 0.9653\n", " False\n", - " {'roc_auc': [0.9210977701543739, 0.94225271583...\n", + " {'roc_auc': [0.9897156684815487, 0.95341802782...\n", " ok\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.decomposition._fastica.FastICA\n", " None\n", @@ -3474,17 +3427,17 @@ " None\n", " \n", " \n", - " 23\n", - " 1.716840e+09\n", - " 0.009267\n", - " (FeatureAgglomeration(), HistGradientBoostingC...\n", + " 24\n", + " 1.728326e+09\n", + " 0.005385\n", + " (VarianceThreshold(), FeatureAgglomeration(), ...\n", " True\n", " NaN\n", " False\n", " None\n", " avoided\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.cluster._agglomerative.FeatureAgglomer...\n", " None\n", @@ -3492,17 +3445,17 @@ " None\n", " \n", " \n", - " 24\n", - " 1.716840e+09\n", - " 0.008169\n", - " (KernelPCA(), HistGradientBoostingClassifier())\n", + " 25\n", + " 1.728326e+09\n", + " 0.004398\n", + " (VarianceThreshold(), KernelPCA(), HistGradien...\n", " True\n", " NaN\n", " False\n", " None\n", " avoided\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.decomposition._kernel_pca.KernelPCA\n", " None\n", @@ -3510,17 +3463,17 @@ " None\n", " \n", " \n", - " 25\n", - " 1.716840e+09\n", - " 0.005599\n", - " (RBFSampler(), HistGradientBoostingClassifier())\n", + " 26\n", + " 1.728326e+09\n", + " 0.004593\n", + " (VarianceThreshold(), RBFSampler(), HistGradie...\n", " True\n", " NaN\n", " False\n", " None\n", " avoided\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.kernel_approximation.RBFSampler\n", " None\n", @@ -3528,17 +3481,17 @@ " None\n", " \n", " \n", - " 26\n", - " 1.716840e+09\n", - " 0.007714\n", - " (Nystroem(), HistGradientBoostingClassifier())\n", + " 27\n", + " 1.728326e+09\n", + " 0.004105\n", + " (VarianceThreshold(), Nystroem(), HistGradient...\n", " True\n", " NaN\n", " False\n", " None\n", " avoided\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.kernel_approximation.Nystroem\n", " None\n", @@ -3546,17 +3499,17 @@ " None\n", " \n", " \n", - " 27\n", - " 1.716840e+09\n", - " 0.963981\n", - " (PCA(), HistGradientBoostingClassifier())\n", + " 28\n", + " 1.728326e+09\n", + " 1.395434\n", + " (VarianceThreshold(), PCA(), HistGradientBoost...\n", " True\n", - " 0.9874\n", + " 0.9904\n", " False\n", - " {'roc_auc': [0.978273299028016, 0.994282447112...\n", + " {'roc_auc': [0.9981851179673321, 0.99637023593...\n", " ok\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.decomposition._pca.PCA\n", " None\n", @@ -3564,17 +3517,17 @@ " None\n", " \n", " \n", - " 28\n", - " 1.716840e+09\n", - " 0.008186\n", - " (PolynomialFeatures(), HistGradientBoostingCla...\n", + " 29\n", + " 1.728326e+09\n", + " 0.004117\n", + " (VarianceThreshold(), PolynomialFeatures(), Hi...\n", " True\n", " NaN\n", " False\n", " None\n", " avoided\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.preprocessing._polynomial.PolynomialFe...\n", " None\n", @@ -3582,17 +3535,17 @@ " None\n", " \n", " \n", - " 29\n", - " 1.716840e+09\n", - " 0.680890\n", - " (SelectPercentile(), HistGradientBoostingClass...\n", + " 30\n", + " 1.728326e+09\n", + " 0.572134\n", + " (VarianceThreshold(), SelectPercentile(), Hist...\n", " True\n", - " 0.9816\n", + " 0.9817\n", " False\n", - " {'roc_auc': [0.9942824471126358, 0.97284162378...\n", + " {'roc_auc': [0.9879007864488808, 0.95583787053...\n", " ok\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.feature_selection._univariate_selectio...\n", " None\n", @@ -3600,17 +3553,17 @@ " None\n", " \n", " \n", - " 30\n", - " 1.716840e+09\n", - " 0.620914\n", - " (GenericUnivariateSelect(), HistGradientBoosti...\n", + " 31\n", + " 1.728326e+09\n", + " 0.551066\n", + " (VarianceThreshold(), GenericUnivariateSelect(...\n", " True\n", - " 0.9413\n", + " 0.9283\n", " False\n", - " {'roc_auc': [0.9451114922813036, 0.95683247570...\n", + " {'roc_auc': [0.8974591651542649, 0.93829401088...\n", " ok\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " sklearn.feature_selection._univariate_selectio...\n", " None\n", @@ -3618,184 +3571,58 @@ " None\n", " \n", " \n", - " 31\n", - " 1.716840e+09\n", - " 0.288856\n", - " (HistGradientBoostingClassifier(early_stopping...\n", - " False\n", - " 0.9903\n", - " True\n", - " {'roc_auc': [0.9988564894225271, 0.97484276729...\n", - " ok\n", - " None\n", - " None\n", - " None\n", - " None\n", - " None\n", - " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'valid', 'l2_regularization': 0...\n", - " \n", - " \n", " 32\n", - " 1.716840e+09\n", - " 0.194818\n", - " (HistGradientBoostingClassifier(early_stopping...\n", + " 1.728326e+09\n", + " 1.881600\n", + " (VarianceThreshold(), HistGradientBoostingClas...\n", " False\n", - " 0.9740\n", + " 0.9953\n", " True\n", - " {'roc_auc': [0.9765580331618068, 0.98456260720...\n", + " {'roc_auc': [0.9975801572897761, 0.98850574712...\n", " ok\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " None\n", " None\n", " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'valid', 'l2_regularization': 3...\n", + " {'early_stop': 'valid', 'l2_regularization': 6...\n", " \n", " \n", " 33\n", - " 1.716840e+09\n", - " 1.836760\n", - " (HistGradientBoostingClassifier(early_stopping...\n", + " 1.728326e+09\n", + " 3.470177\n", + " (VarianceThreshold(), HistGradientBoostingClas...\n", " False\n", - " 0.9842\n", + " 0.9854\n", " True\n", - " {'roc_auc': [0.9817038307604345, 0.98570611778...\n", + " {'roc_auc': [0.9764065335753176, 0.99576527525...\n", " ok\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " None\n", " None\n", " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'off', 'l2_regularization': 4.9...\n", + " {'early_stop': 'off', 'l2_regularization': 1.2...\n", " \n", " \n", " 34\n", - " 1.716840e+09\n", - " 3.107489\n", - " (HistGradientBoostingClassifier(early_stopping...\n", - " False\n", - " 0.9816\n", - " True\n", - " {'roc_auc': [0.9731275014293883, 0.96112064036...\n", - " ok\n", - " None\n", - " None\n", - " None\n", - " None\n", - " None\n", - " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'off', 'l2_regularization': 0.2...\n", - " \n", - " \n", - " 35\n", - " 1.716840e+09\n", - " 3.310561\n", - " (HistGradientBoostingClassifier(early_stopping...\n", - " False\n", - " 0.9931\n", - " True\n", - " {'roc_auc': [1.0, 0.9834190966266438, 1.0, 0.9...\n", - " ok\n", - " None\n", - " None\n", - " None\n", - " None\n", - " None\n", - " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'train', 'l2_regularization': 0...\n", - " \n", - " \n", - " 36\n", - " 1.716840e+09\n", - " 0.553527\n", - " (HistGradientBoostingClassifier(early_stopping...\n", - " False\n", - " 0.9923\n", - " True\n", - " {'roc_auc': [0.9994282447112637, 0.98713550600...\n", - " ok\n", - " None\n", - " None\n", - " None\n", - " None\n", - " None\n", - " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'valid', 'l2_regularization': 9...\n", - " \n", - " \n", - " 37\n", - " 1.716840e+09\n", - " 3.286090\n", - " (HistGradientBoostingClassifier(early_stopping...\n", - " False\n", - " 0.9965\n", - " True\n", - " {'roc_auc': [0.9937106918238994, 0.99428244711...\n", - " ok\n", - " None\n", - " None\n", - " None\n", - " None\n", - " None\n", - " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'train', 'l2_regularization': 0...\n", - " \n", - " \n", - " 38\n", - " 1.716840e+09\n", - " 0.182795\n", - " (HistGradientBoostingClassifier(early_stopping...\n", - " False\n", - " 0.9715\n", - " True\n", - " {'roc_auc': [0.9794168096054888, 0.99828473413...\n", - " ok\n", - " None\n", - " None\n", - " None\n", - " None\n", - " None\n", - " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'valid', 'l2_regularization': 0...\n", - " \n", - " \n", - " 39\n", - " 1.716840e+09\n", - " 1.404757\n", - " (HistGradientBoostingClassifier(early_stopping...\n", - " False\n", - " 0.9850\n", - " True\n", - " {'roc_auc': [0.9736992567181246, 0.99599771297...\n", - " ok\n", - " None\n", - " None\n", - " None\n", - " None\n", - " None\n", - " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'off', 'l2_regularization': 8.3...\n", - " \n", - " \n", - " 40\n", - " 1.716840e+09\n", - " 2.862135\n", - " (HistGradientBoostingClassifier(early_stopping...\n", + " 1.728326e+09\n", + " 3.190365\n", + " (VarianceThreshold(), HistGradientBoostingClas...\n", " False\n", - " 0.9868\n", + " 0.9947\n", " True\n", - " {'roc_auc': [0.982275586049171, 0.991423670668...\n", + " {'roc_auc': [0.9830611010284331, 0.99879007864...\n", " ok\n", " None\n", - " None\n", + " sklearn.feature_selection._variance_threshold....\n", " None\n", " None\n", " None\n", " sklearn.ensemble.HistGradientBoostingClassifier\n", - " {'early_stop': 'off', 'l2_regularization': 0.1...\n", + " {'early_stop': 'off', 'l2_regularization': 0.3...\n", " \n", " \n", "\n", @@ -3803,133 +3630,115 @@ ], "text/plain": [ " time runtime pipeline \\\n", - "0 1.716840e+09 0.582555 (ExtraTreesClassifier()) \n", - "1 1.716840e+09 1.153195 (RandomForestClassifier()) \n", - "2 1.716840e+09 1.270579 (HistGradientBoostingClassifier()) \n", - "3 1.716840e+09 0.036881 (BernoulliNB()) \n", - "4 1.716840e+09 0.060323 (DecisionTreeClassifier()) \n", - "5 1.716840e+09 0.032205 (GaussianNB()) \n", - "6 1.716840e+09 0.044195 (KNeighborsClassifier()) \n", - "7 1.716840e+09 0.043597 (LinearDiscriminantAnalysis()) \n", - "8 1.716840e+09 0.032398 (QuadraticDiscriminantAnalysis()) \n", - "9 1.716840e+09 3.127650 (SVC(kernel='linear')) \n", - "10 1.716840e+09 0.060098 (SVC()) \n", - "11 1.716840e+09 0.066071 (SVC(kernel='poly')) \n", - "12 1.716840e+09 0.093112 (SVC(kernel='sigmoid')) \n", - "13 1.716840e+09 1.389846 (MLPClassifier()) \n", - "14 1.716840e+09 0.024595 (MultinomialNB()) \n", - "15 1.716840e+09 0.006696 (MinMaxScaler(), HistGradientBoostingClassifie... \n", - "16 1.716840e+09 0.944081 (Normalizer(), HistGradientBoostingClassifier()) \n", - "17 1.716840e+09 0.005763 (PowerTransformer(), HistGradientBoostingClass... \n", - "18 1.716840e+09 0.009366 (QuantileTransformer(), HistGradientBoostingCl... \n", - "19 1.716840e+09 0.011938 (RobustScaler(), HistGradientBoostingClassifie... \n", - "20 1.716840e+09 0.008092 (StandardScaler(), HistGradientBoostingClassif... \n", - "21 1.716840e+09 0.947790 (VarianceThreshold(), HistGradientBoostingClas... \n", - "22 1.716840e+09 1.564505 (FastICA(), HistGradientBoostingClassifier()) \n", - "23 1.716840e+09 0.009267 (FeatureAgglomeration(), HistGradientBoostingC... \n", - "24 1.716840e+09 0.008169 (KernelPCA(), HistGradientBoostingClassifier()) \n", - "25 1.716840e+09 0.005599 (RBFSampler(), HistGradientBoostingClassifier()) \n", - "26 1.716840e+09 0.007714 (Nystroem(), HistGradientBoostingClassifier()) \n", - "27 1.716840e+09 0.963981 (PCA(), HistGradientBoostingClassifier()) \n", - "28 1.716840e+09 0.008186 (PolynomialFeatures(), HistGradientBoostingCla... \n", - "29 1.716840e+09 0.680890 (SelectPercentile(), HistGradientBoostingClass... \n", - "30 1.716840e+09 0.620914 (GenericUnivariateSelect(), HistGradientBoosti... \n", - "31 1.716840e+09 0.288856 (HistGradientBoostingClassifier(early_stopping... \n", - "32 1.716840e+09 0.194818 (HistGradientBoostingClassifier(early_stopping... \n", - "33 1.716840e+09 1.836760 (HistGradientBoostingClassifier(early_stopping... \n", - "34 1.716840e+09 3.107489 (HistGradientBoostingClassifier(early_stopping... \n", - "35 1.716840e+09 3.310561 (HistGradientBoostingClassifier(early_stopping... \n", - "36 1.716840e+09 0.553527 (HistGradientBoostingClassifier(early_stopping... \n", - "37 1.716840e+09 3.286090 (HistGradientBoostingClassifier(early_stopping... \n", - "38 1.716840e+09 0.182795 (HistGradientBoostingClassifier(early_stopping... \n", - "39 1.716840e+09 1.404757 (HistGradientBoostingClassifier(early_stopping... \n", - "40 1.716840e+09 2.862135 (HistGradientBoostingClassifier(early_stopping... \n", + "0 1.728326e+09 0.555445 (ExtraTreesClassifier()) \n", + "1 1.728326e+09 0.948848 (RandomForestClassifier()) \n", + "2 1.728326e+09 0.794000 (HistGradientBoostingClassifier()) \n", + "3 1.728326e+09 0.021051 (BernoulliNB()) \n", + "4 1.728326e+09 0.041461 (DecisionTreeClassifier()) \n", + "5 1.728326e+09 0.017106 (GaussianNB()) \n", + "6 1.728326e+09 0.184520 (KNeighborsClassifier()) \n", + "7 1.728326e+09 0.058902 (LinearDiscriminantAnalysis()) \n", + "8 1.728326e+09 0.040780 (QuadraticDiscriminantAnalysis()) \n", + "9 1.728326e+09 3.260550 (SVC(kernel='linear')) \n", + "10 1.728326e+09 0.055493 (SVC()) \n", + "11 1.728326e+09 0.060643 (SVC(kernel='poly')) \n", + "12 1.728326e+09 0.085472 (SVC(kernel='sigmoid')) \n", + "13 1.728326e+09 0.481201 (LogisticRegression()) \n", + "14 1.728326e+09 4.706863 (MLPClassifier()) \n", + "15 1.728326e+09 0.049075 (MultinomialNB()) \n", + "16 1.728326e+09 0.015053 (MinMaxScaler(), HistGradientBoostingClassifie... \n", + "17 1.728326e+09 0.889329 (Normalizer(), HistGradientBoostingClassifier()) \n", + "18 1.728326e+09 0.004544 (PowerTransformer(), HistGradientBoostingClass... \n", + "19 1.728326e+09 0.004509 (QuantileTransformer(), HistGradientBoostingCl... \n", + "20 1.728326e+09 0.005793 (RobustScaler(), HistGradientBoostingClassifie... \n", + "21 1.728326e+09 0.006627 (StandardScaler(), HistGradientBoostingClassif... \n", + "22 1.728326e+09 0.886483 (VarianceThreshold(), HistGradientBoostingClas... \n", + "23 1.728326e+09 3.913556 (VarianceThreshold(), FastICA(), HistGradientB... \n", + "24 1.728326e+09 0.005385 (VarianceThreshold(), FeatureAgglomeration(), ... \n", + "25 1.728326e+09 0.004398 (VarianceThreshold(), KernelPCA(), HistGradien... \n", + "26 1.728326e+09 0.004593 (VarianceThreshold(), RBFSampler(), HistGradie... \n", + "27 1.728326e+09 0.004105 (VarianceThreshold(), Nystroem(), HistGradient... \n", + "28 1.728326e+09 1.395434 (VarianceThreshold(), PCA(), HistGradientBoost... \n", + "29 1.728326e+09 0.004117 (VarianceThreshold(), PolynomialFeatures(), Hi... \n", + "30 1.728326e+09 0.572134 (VarianceThreshold(), SelectPercentile(), Hist... \n", + "31 1.728326e+09 0.551066 (VarianceThreshold(), GenericUnivariateSelect(... \n", + "32 1.728326e+09 1.881600 (VarianceThreshold(), HistGradientBoostingClas... \n", + "33 1.728326e+09 3.470177 (VarianceThreshold(), HistGradientBoostingClas... \n", + "34 1.728326e+09 3.190365 (VarianceThreshold(), HistGradientBoostingClas... \n", "\n", " default_hp roc_auc new_best \\\n", - "0 True 0.9915 True \n", - "1 True 0.9961 True \n", - "2 True 0.9969 True \n", - "3 True 0.5132 False \n", - "4 True 0.9013 False \n", - "5 True 0.9903 False \n", - "6 True 0.9678 False \n", - "7 True 0.9914 False \n", - "8 True 0.9863 False \n", - "9 True 0.9868 False \n", - "10 True 0.9721 False \n", - "11 True 0.9680 False \n", - "12 True 0.2492 False \n", - "13 True 0.9639 False \n", - "14 True 0.9485 False \n", - "15 True NaN False \n", - "16 True 0.9898 False \n", - "17 True NaN False \n", + "0 True 0.9909 True \n", + "1 True 0.9939 True \n", + "2 True 0.9972 True \n", + "3 True 0.5158 False \n", + "4 True 0.9152 False \n", + "5 True 0.9925 False \n", + "6 True 0.9461 False \n", + "7 True 0.9909 False \n", + "8 True 0.9864 False \n", + "9 True 0.9926 False \n", + "10 True 0.9811 False \n", + "11 True 0.9787 False \n", + "12 True 0.2052 False \n", + "13 True 0.9901 False \n", + "14 True 0.9721 False \n", + "15 True 0.9576 False \n", + "16 True NaN False \n", + "17 True 0.9906 False \n", "18 True NaN False \n", "19 True NaN False \n", "20 True NaN False \n", - "21 True 0.9887 False \n", - "22 True 0.9456 False \n", - "23 True NaN False \n", + "21 True NaN False \n", + "22 True 0.9983 True \n", + "23 True 0.9653 False \n", "24 True NaN False \n", "25 True NaN False \n", "26 True NaN False \n", - "27 True 0.9874 False \n", - "28 True NaN False \n", - "29 True 0.9816 False \n", - "30 True 0.9413 False \n", - "31 False 0.9903 True \n", - "32 False 0.9740 True \n", - "33 False 0.9842 True \n", - "34 False 0.9816 True \n", - "35 False 0.9931 True \n", - "36 False 0.9923 True \n", - "37 False 0.9965 True \n", - "38 False 0.9715 True \n", - "39 False 0.9850 True \n", - "40 False 0.9868 True \n", + "27 True NaN False \n", + "28 True 0.9904 False \n", + "29 True NaN False \n", + "30 True 0.9817 False \n", + "31 True 0.9283 False \n", + "32 False 0.9953 True \n", + "33 False 0.9854 True \n", + "34 False 0.9947 True \n", "\n", " evaluation_report status exception \\\n", - "0 {'roc_auc': [1.0, 0.9814179531160664, 0.997141... ok None \n", - "1 {'roc_auc': [0.9902801600914808, 1.0, 0.995997... ok None \n", - "2 {'roc_auc': [0.9988564894225272, 1.0, 0.993710... ok None \n", - "3 {'roc_auc': [0.5188679245283019, 0.50943396226... ok None \n", - "4 {'roc_auc': [0.9545454545454545, 0.88650657518... ok None \n", - "5 {'roc_auc': [0.9914236706689536, 0.99828473413... ok None \n", - "6 {'roc_auc': [0.9751286449399656, 0.98284734133... ok None \n", - "7 {'roc_auc': [0.9857061177815895, 0.99599771297... ok None \n", - "8 {'roc_auc': [0.9965694682675814, 0.98399085191... ok None \n", - "9 {'roc_auc': [0.9977129788450544, 0.97255574614... ok None \n", - "10 {'roc_auc': [0.9685534591194969, 0.94568324757... ok None \n", - "11 {'roc_auc': [0.9576901086335048, 0.94053744997... ok None \n", - "12 {'roc_auc': [0.3602058319039452, 0.26357918810... ok None \n", - "13 {'roc_auc': [0.9759862778730704, 0.96455117209... ok None \n", - "14 {'roc_auc': [0.9522584333905089, 0.94511149228... ok None \n", - "15 None avoided None \n", - "16 {'roc_auc': [1.0, 0.9925671812464265, 0.998284... ok None \n", - "17 None avoided None \n", + "0 {'roc_auc': [0.9866908650937689, 0.97973381730... ok None \n", + "1 {'roc_auc': [0.9945553539019965, 0.98396854204... ok None \n", + "2 {'roc_auc': [0.9993950393224441, 0.99334543254... ok None \n", + "3 {'roc_auc': [0.5, 0.5263157894736842, 0.517543... ok None \n", + "4 {'roc_auc': [0.939201451905626, 0.939503932244... ok None \n", + "5 {'roc_auc': [0.9891107078039928, 0.99213551119... ok None \n", + "6 {'roc_auc': [0.9552329098608591, 0.93768905021... ok None \n", + "7 {'roc_auc': [0.9963702359346642, 0.96491228070... ok None \n", + "8 {'roc_auc': [0.9624924379915305, 0.99758015728... ok None \n", + "9 {'roc_auc': [0.9975801572897761, 0.98850574712... ok None \n", + "10 {'roc_auc': [0.9879007864488808, 0.98427102238... ok None \n", + "11 {'roc_auc': [0.9885057471264368, 0.98366606170... ok None \n", + "12 {'roc_auc': [0.21536600120992133, 0.1657592256... ok None \n", + "13 {'roc_auc': [0.9939503932244403, 0.98971566848... ok None \n", + "14 {'roc_auc': [0.9370840895341803, 0.98850574712... ok None \n", + "15 {'roc_auc': [0.984875983061101, 0.977011494252... ok None \n", + "16 None avoided None \n", + "17 {'roc_auc': [0.9770114942528735, 0.99153055051... ok None \n", "18 None avoided None \n", "19 None avoided None \n", "20 None avoided None \n", - "21 {'roc_auc': [0.9765580331618068, 0.99656946826... ok None \n", - "22 {'roc_auc': [0.9210977701543739, 0.94225271583... ok None \n", - "23 None avoided None \n", + "21 None avoided None \n", + "22 {'roc_auc': [0.9963702359346642, 1.0, 0.998185... ok None \n", + "23 {'roc_auc': [0.9897156684815487, 0.95341802782... ok None \n", "24 None avoided None \n", "25 None avoided None \n", "26 None avoided None \n", - "27 {'roc_auc': [0.978273299028016, 0.994282447112... ok None \n", - "28 None avoided None \n", - "29 {'roc_auc': [0.9942824471126358, 0.97284162378... ok None \n", - "30 {'roc_auc': [0.9451114922813036, 0.95683247570... ok None \n", - "31 {'roc_auc': [0.9988564894225271, 0.97484276729... ok None \n", - "32 {'roc_auc': [0.9765580331618068, 0.98456260720... ok None \n", - "33 {'roc_auc': [0.9817038307604345, 0.98570611778... ok None \n", - "34 {'roc_auc': [0.9731275014293883, 0.96112064036... ok None \n", - "35 {'roc_auc': [1.0, 0.9834190966266438, 1.0, 0.9... ok None \n", - "36 {'roc_auc': [0.9994282447112637, 0.98713550600... ok None \n", - "37 {'roc_auc': [0.9937106918238994, 0.99428244711... ok None \n", - "38 {'roc_auc': [0.9794168096054888, 0.99828473413... ok None \n", - "39 {'roc_auc': [0.9736992567181246, 0.99599771297... ok None \n", - "40 {'roc_auc': [0.982275586049171, 0.991423670668... ok None \n", + "27 None avoided None \n", + "28 {'roc_auc': [0.9981851179673321, 0.99637023593... ok None \n", + "29 None avoided None \n", + "30 {'roc_auc': [0.9879007864488808, 0.95583787053... ok None \n", + "31 {'roc_auc': [0.8974591651542649, 0.93829401088... ok None \n", + "32 {'roc_auc': [0.9975801572897761, 0.98850574712... ok None \n", + "33 {'roc_auc': [0.9764065335753176, 0.99576527525... ok None \n", + "34 {'roc_auc': [0.9830611010284331, 0.99879007864... ok None \n", "\n", " data-pre-processor_class data-pre-processor_hps \\\n", "0 None None \n", @@ -3947,32 +3756,26 @@ "12 None None \n", "13 None None \n", "14 None None \n", - "15 sklearn.preprocessing._data.MinMaxScaler None \n", - "16 sklearn.preprocessing._data.Normalizer None \n", - "17 sklearn.preprocessing._data.PowerTransformer None \n", - "18 sklearn.preprocessing._data.QuantileTransformer None \n", - "19 sklearn.preprocessing._data.RobustScaler None \n", - "20 sklearn.preprocessing._data.StandardScaler None \n", - "21 sklearn.feature_selection._variance_threshold.... None \n", - "22 None None \n", - "23 None None \n", - "24 None None \n", - "25 None None \n", - "26 None None \n", - "27 None None \n", - "28 None None \n", - "29 None None \n", - "30 None None \n", - "31 None None \n", - "32 None None \n", - "33 None None \n", - "34 None None \n", - "35 None None \n", - "36 None None \n", - "37 None None \n", - "38 None None \n", - "39 None None \n", - "40 None None \n", + "15 None None \n", + "16 sklearn.preprocessing._data.MinMaxScaler None \n", + "17 sklearn.preprocessing._data.Normalizer None \n", + "18 sklearn.preprocessing._data.PowerTransformer None \n", + "19 sklearn.preprocessing._data.QuantileTransformer None \n", + "20 sklearn.preprocessing._data.RobustScaler None \n", + "21 sklearn.preprocessing._data.StandardScaler None \n", + "22 sklearn.feature_selection._variance_threshold.... None \n", + "23 sklearn.feature_selection._variance_threshold.... None \n", + "24 sklearn.feature_selection._variance_threshold.... None \n", + "25 sklearn.feature_selection._variance_threshold.... None \n", + "26 sklearn.feature_selection._variance_threshold.... None \n", + "27 sklearn.feature_selection._variance_threshold.... None \n", + "28 sklearn.feature_selection._variance_threshold.... None \n", + "29 sklearn.feature_selection._variance_threshold.... None \n", + "30 sklearn.feature_selection._variance_threshold.... None \n", + "31 sklearn.feature_selection._variance_threshold.... None \n", + "32 sklearn.feature_selection._variance_threshold.... None \n", + "33 sklearn.feature_selection._variance_threshold.... None \n", + "34 sklearn.feature_selection._variance_threshold.... None \n", "\n", " feature-pre-processor_class \\\n", "0 None \n", @@ -3997,25 +3800,19 @@ "19 None \n", "20 None \n", "21 None \n", - "22 sklearn.decomposition._fastica.FastICA \n", - "23 sklearn.cluster._agglomerative.FeatureAgglomer... \n", - "24 sklearn.decomposition._kernel_pca.KernelPCA \n", - "25 sklearn.kernel_approximation.RBFSampler \n", - "26 sklearn.kernel_approximation.Nystroem \n", - "27 sklearn.decomposition._pca.PCA \n", - "28 sklearn.preprocessing._polynomial.PolynomialFe... \n", - "29 sklearn.feature_selection._univariate_selectio... \n", + "22 None \n", + "23 sklearn.decomposition._fastica.FastICA \n", + "24 sklearn.cluster._agglomerative.FeatureAgglomer... \n", + "25 sklearn.decomposition._kernel_pca.KernelPCA \n", + "26 sklearn.kernel_approximation.RBFSampler \n", + "27 sklearn.kernel_approximation.Nystroem \n", + "28 sklearn.decomposition._pca.PCA \n", + "29 sklearn.preprocessing._polynomial.PolynomialFe... \n", "30 sklearn.feature_selection._univariate_selectio... \n", - "31 None \n", + "31 sklearn.feature_selection._univariate_selectio... \n", "32 None \n", "33 None \n", "34 None \n", - "35 None \n", - "36 None \n", - "37 None \n", - "38 None \n", - "39 None \n", - "40 None \n", "\n", " feature-pre-processor_hps \\\n", "0 None \n", @@ -4053,12 +3850,6 @@ "32 None \n", "33 None \n", "34 None \n", - "35 None \n", - "36 None \n", - "37 None \n", - "38 None \n", - "39 None \n", - "40 None \n", "\n", " learner_class \\\n", "0 sklearn.ensemble._forest.ExtraTreesClassifier \n", @@ -4074,9 +3865,9 @@ "10 sklearn.svm._classes.SVC \n", "11 sklearn.svm._classes.SVC \n", "12 sklearn.svm._classes.SVC \n", - "13 sklearn.neural_network._multilayer_perceptron.... \n", - "14 sklearn.naive_bayes.MultinomialNB \n", - "15 sklearn.ensemble.HistGradientBoostingClassifier \n", + "13 sklearn.linear_model.LogisticRegression \n", + "14 sklearn.neural_network._multilayer_perceptron.... \n", + "15 sklearn.naive_bayes.MultinomialNB \n", "16 sklearn.ensemble.HistGradientBoostingClassifier \n", "17 sklearn.ensemble.HistGradientBoostingClassifier \n", "18 sklearn.ensemble.HistGradientBoostingClassifier \n", @@ -4096,12 +3887,6 @@ "32 sklearn.ensemble.HistGradientBoostingClassifier \n", "33 sklearn.ensemble.HistGradientBoostingClassifier \n", "34 sklearn.ensemble.HistGradientBoostingClassifier \n", - "35 sklearn.ensemble.HistGradientBoostingClassifier \n", - "36 sklearn.ensemble.HistGradientBoostingClassifier \n", - "37 sklearn.ensemble.HistGradientBoostingClassifier \n", - "38 sklearn.ensemble.HistGradientBoostingClassifier \n", - "39 sklearn.ensemble.HistGradientBoostingClassifier \n", - "40 sklearn.ensemble.HistGradientBoostingClassifier \n", "\n", " learner_hps \n", "0 None \n", @@ -4135,16 +3920,10 @@ "28 None \n", "29 None \n", "30 None \n", - "31 {'early_stop': 'valid', 'l2_regularization': 0... \n", - "32 {'early_stop': 'valid', 'l2_regularization': 3... \n", - "33 {'early_stop': 'off', 'l2_regularization': 4.9... \n", - "34 {'early_stop': 'off', 'l2_regularization': 0.2... \n", - "35 {'early_stop': 'train', 'l2_regularization': 0... \n", - "36 {'early_stop': 'valid', 'l2_regularization': 9... \n", - "37 {'early_stop': 'train', 'l2_regularization': 0... \n", - "38 {'early_stop': 'valid', 'l2_regularization': 0... \n", - "39 {'early_stop': 'off', 'l2_regularization': 8.3... \n", - "40 {'early_stop': 'off', 'l2_regularization': 0.1... " + "31 None \n", + "32 {'early_stop': 'valid', 'l2_regularization': 6... \n", + "33 {'early_stop': 'off', 'l2_regularization': 1.2... \n", + "34 {'early_stop': 'off', 'l2_regularization': 0.3... " ] }, "execution_count": 13, @@ -4164,7 +3943,7 @@ "outputs": [ { "data": { - "image/png": "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Y202m1q2bCmr1ar33ntPo0aNkodHydPn5uY6b5exWq0yDOOsk74UFBRox44dio6OrspLAAAAAAAAAAAAqJIqD/M1bdo0jR07Vn379tWAAQM0d+5cJScna/LkyZJK5ik5fPiwFi9eLEnavXu31q5dq379+ikzM1MzZ87U1q1btWjRIuc+r7nmGs2cOVO9evVyDvP11FNP6dprr3UOBfbII4/ommuuUatWrZSWlqa//e1vys7O1rhx42ri91CnvL299fTTT1cYggxA48VxDzRNHPtA08NxDzRNHPtA08NxDzQ9FuNsrR9uzJo1Sy+99JJSUlLUrVs3vfzyy7r00kslSePHj9f+/fv1448/SpJ27Nih2267Tbt27ZLNZtNll12mF198UR07dnTur6ioSM8995yWLFmiw4cPKzw8XNdcc42ee+455xwnY8aM0U8//aT09HSFh4erf//++utf/6ouXbr89t8CAAAAAAAAAADAWVQrTAEAAAAAAAAAAGgqqjRnCgAAAAAAAAAAQFNDmAIAAAAAAAAAAOAGYQoAAAAAAAAAAIAbhCkAAAAAAAAAAABuEKbUkMOHD+uOO+5Q8+bN5efnp549e2r9+vXO9UePHtX48eMVExMjPz8/jRgxQomJiS77GDJkiCwWi8syZsyYun4pAM5TXFxchWPWYrHo/vvvlyQZhqFnnnlGMTEx8vX11ZAhQ7Rt2zaXfRQUFOgPf/iDwsLC5O/vr2uvvVaHDh0y4+UAOE81cezzng80LOc67j/55BMNHz5cYWFhslgs2rRpU4V98J4PNDw1cezzng80LO6Oe7vdrkcffVTdu3eXv7+/YmJidOedd+rIkSMu++A9H2i8CFNqQGZmpgYNGiSbzaavv/5a27dv14wZMxQSEiKp5EuV66+/Xvv27dPnn3+ujRs3qnXr1ho6dKhycnJc9jVp0iSlpKQ4lzlz5pjwigCcj19++cXleE1ISJAk3XzzzZKkl156STNnztRrr72mX375RVFRUbryyit18uRJ5z6mTJmiTz/9VO+9955+/vlnnTp1SqNGjVJxcbEprwnAudXEsS/xng80JOc67nNycjRo0CD93//931n3wXs+0PDUxLEv8Z4PNCTujvvc3Fxt2LBBTz31lDZs2KBPPvlEu3fv1rXXXuuyD97zgUbMwG/26KOPGhdffPFZ1+/atcuQZGzd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", + "image/png": "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KzZgAHbvUuadczjfAXC50tLSJEl+fn6SLu18JjIyUm3atClOpEhSRESE0tPTtWfPngqMHoA9upx555yxY8fK399fXbt21eeffy7WCKCiOZkdAABcjvfff18PPPCAgoKC5OTkJAcHB33yySfq1atX8Zg77rhDDRo0UGBgoHbu3Kmnn35aUVFRWrBggYmRA7BH507mJ02apOnTp8vT01Nvv/22jh49qsTERElSUlKSXFxcVKNGjRKvDQgIUFJSkglRA7BnlzLvSJzvALh8VqtV48ePV8+ePdW6dWtJl3Y+k5SUVCKRcm77uW0A8Hcud96RpBdffFHXXHONPDw89Ouvv+rhhx9WRkaGHn300Yo8BFRzJFMA2KX3339f69ev1w8//KAGDRpo9erVGjt2rAIDA4vvZnjggQeKx7dp00b16tVTv379dOjQITVq1Mis0AHYIWdnZy1YsECjR4+Wn5+fHB0d1b9/f1133XXcDQWgXFzqvMP5DoDLNXbsWO3evfuC1W4AUF6uZN45v8x7hw4dlJmZqddff51kCioUZb4A2J3s7Gw9++yzeuutt3TjjTeqbdu2GjdunG677Ta98cYbf/u6bt26SZIOHjxYUaECqEI6deqk7du3KzU1VYmJiVqyZIlOnjyphg0bSpLq1q2rvLw8paamlnhdcnKy6tata0LEAOzdP807F8P5DoBLMW7cOP30009asWKFgoKCip+/lPOZunXrKjk5+YLt57YBwMVcybxzMd26ddPRo0eLS6MCFYFkCgC7k5+fr/z8fDk4lJzCHB0dZbVa//Z127dvlyTVq1evPMMDUMX5+vqqdu3aio6O1ubNmzVo0CBJRRc9nZ2dtXz58uKxUVFRiouLU3h4uFnhAqgC/m7euRjOdwDYYhiGxo0bp4ULF+r3339XWFhYie2Xcj4THh6uXbt26fjx48Vjli1bJh8fH7Vs2bJiDgSA3SiLeeditm/frpo1a8rV1bXcYgf+ijJfACqljIyMEndUxsTEaPv27fLz81NISIh69+6tJ598Uu7u7mrQoIFWrVql2bNn66233pIkHTp0SF9++aWuv/561apVSzt37tSECRPUq1cvtW3b1qzDAlCJ/dO8880336h27doKCQnRrl279Nhjj2nw4MEaMGCApKKLnaNHj9bEiRPl5+cnHx8fPfLIIwoPD1f37t3NOiwAldiV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", "text/plain": [ "
" ] @@ -4194,7 +3973,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.11" + "version": "3.12.5" } }, "nbformat": 4,