Obtain run information

The following example shows how to obtain information from a finished Auto-sklearn run. In particular, it shows: * how to query which models were evaluated by Auto-sklearn * how to query the models in the final ensemble * how to get general statistics on the what Auto-sklearn evaluated

Auto-sklearn is a wrapper on top of the sklearn models. This example illustrates how to interact with the sklearn components directly, in this case a PCA preprocessor.

from pprint import pprint

import sklearn.datasets
import sklearn.metrics

import autosklearn.classification

Data Loading

X, y = sklearn.datasets.load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = \
    sklearn.model_selection.train_test_split(X, y, random_state=1)

Build and fit the classifier

automl = autosklearn.classification.AutoSklearnClassifier(
    time_left_for_this_task=30,
    per_run_time_limit=10,
    disable_evaluator_output=False,
    # To simplify querying the models in the final ensemble, we
    # restrict auto-sklearn to use only pca as a preprocessor
    include={
        'feature_preprocessor': ['pca']
    },
)
automl.fit(X_train, y_train, dataset_name='breast_cancer')

Out:

/home/runner/work/auto-sklearn/auto-sklearn/autosklearn/metalearning/metalearning/meta_base.py:68: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  self.metafeatures = self.metafeatures.append(metafeatures)
/home/runner/work/auto-sklearn/auto-sklearn/autosklearn/metalearning/metalearning/meta_base.py:72: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  self.algorithm_runs[metric].append(runs)

AutoSklearnClassifier(include={'feature_preprocessor': ['pca']},
                      per_run_time_limit=10, time_left_for_this_task=30)

Predict using the model

predictions = automl.predict(X_test)
print("Accuracy score:{}".format(
    sklearn.metrics.accuracy_score(y_test, predictions))
)

Out:

Accuracy score:0.958041958041958

Report the models found by Auto-Sklearn

Auto-sklearn uses Ensemble Selection to construct ensembles in a post-hoc fashion. The ensemble is a linear weighting of all models constructed during the hyperparameter optimization. This prints the final ensemble. It is a dictionary where model_id of each model is a key, and value is a dictionary containing information of that model. A model’s dict contains its 'model_id', 'rank', 'cost', 'ensemble_weight', and the model itself. The model is given by the 'data_preprocessor', 'feature_preprocessor', 'regressor'/'classifier' and 'sklearn_regressor'/'sklearn_classifier' entries. But for the 'cv' resampling strategy, the same for each cv model is stored in the 'estimators' list in the dict, along with the 'voting_model'.

pprint(automl.show_models(), indent=4)

Out:

{   2: {   'balancing': Balancing(random_state=1),
           'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0e58bdeb0>,
           'cost': 0.07801418439716312,
           'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0eb0edc40>,
           'ensemble_weight': 0.04,
           'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0e58bdbb0>,
           'model_id': 2,
           'rank': 7,
           'sklearn_classifier': RandomForestClassifier(max_features=5, n_estimators=512, n_jobs=1,
                       random_state=1, warm_start=True)},
    3: {   'balancing': Balancing(random_state=1),
           'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0eab1e700>,
           'cost': 0.07092198581560283,
           'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0e9532bb0>,
           'ensemble_weight': 0.18,
           'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0eab1e220>,
           'model_id': 3,
           'rank': 6,
           'sklearn_classifier': RandomForestClassifier(max_features=1, min_samples_leaf=2, min_samples_split=20,
                       n_estimators=512, n_jobs=1, random_state=1,
                       warm_start=True)},
    4: {   'balancing': Balancing(random_state=1, strategy='weighting'),
           'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0ea258430>,
           'cost': 0.028368794326241176,
           'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0ea258790>,
           'ensemble_weight': 0.08,
           'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0ea258970>,
           'model_id': 4,
           'rank': 1,
           'sklearn_classifier': MLPClassifier(activation='tanh', alpha=1.103855734598575e-05, beta_1=0.999,
              beta_2=0.9, early_stopping=True,
              hidden_layer_sizes=(229, 229, 229),
              learning_rate_init=0.00014375616988222174, max_iter=32,
              n_iter_no_change=32, random_state=1, verbose=0, warm_start=True)},
    5: {   'balancing': Balancing(random_state=1, strategy='weighting'),
           'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0ea85d7f0>,
           'cost': 0.1063829787234043,
           'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0ea62eb50>,
           'ensemble_weight': 0.04,
           'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0edc49a90>,
           'model_id': 5,
           'rank': 8,
           'sklearn_classifier': KNeighborsClassifier(n_neighbors=4, weights='distance')},
    6: {   'balancing': Balancing(random_state=1),
           'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0edb9d9a0>,
           'cost': 0.11347517730496459,
           'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0ef47e580>,
           'ensemble_weight': 0.16,
           'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0edb9d400>,
           'model_id': 6,
           'rank': 9,
           'sklearn_classifier': SVC(C=100.5905006626969, cache_size=1796.8411458333333,
    coef0=0.08087614244138486, gamma=0.011333066835975528, kernel='poly',
    max_iter=-1.0, random_state=1, tol=0.012391313886912093)},
    7: {   'balancing': Balancing(random_state=1, strategy='weighting'),
           'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0ec0457f0>,
           'cost': 0.03546099290780147,
           'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0ea70ab80>,
           'ensemble_weight': 0.16,
           'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0ec0457c0>,
           'model_id': 7,
           'rank': 3,
           'sklearn_classifier': LinearSVC(C=10.369811497206404, class_weight='balanced', dual=False,
          intercept_scaling=1.0, random_state=1, tol=0.0015130257264171173)},
    8: {   'balancing': Balancing(random_state=1, strategy='weighting'),
           'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0edb20d90>,
           'cost': 0.05673758865248224,
           'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0ea1a46d0>,
           'ensemble_weight': 0.02,
           'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0edb206d0>,
           'model_id': 8,
           'rank': 4,
           'sklearn_classifier': DecisionTreeClassifier(class_weight='balanced', max_depth=1, min_samples_leaf=5,
                       min_samples_split=19, random_state=1)},
    9: {   'balancing': Balancing(random_state=1),
           'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0ec070b80>,
           'cost': 0.028368794326241176,
           'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0ea70ad30>,
           'ensemble_weight': 0.26,
           'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0ec0702b0>,
           'model_id': 9,
           'rank': 2,
           'sklearn_classifier': SGDClassifier(alpha=1.0333981795670635e-07, epsilon=0.03457277874230573,
              eta0=0.004635634934629583, learning_rate='constant',
              loss='modified_huber', max_iter=128, random_state=1,
              tol=2.5846457091661748e-05, warm_start=True)},
    10: {   'balancing': Balancing(random_state=1),
            'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7fb0ea50e2b0>,
            'cost': 0.05673758865248224,
            'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7fb0e709dcd0>,
            'ensemble_weight': 0.06,
            'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7fb0e974a550>,
            'model_id': 10,
            'rank': 5,
            'sklearn_classifier': SGDClassifier(alpha=0.0006046872822704108, epsilon=0.0006085470273398056,
              eta0=0.0003474820560182061, l1_ratio=4.5783995454757295e-09,
              learning_rate='invscaling', loss='modified_huber', max_iter=1024,
              penalty='elasticnet', power_t=0.6064541566557635, random_state=1,
              tol=1.7244397014112777e-05, warm_start=True)}}

Detailed statistics about the search - part 1

Auto-sklearn also keeps detailed statistics of the hyperparameter optimization procedurce, which are stored in a so-called run history.

print(automl.automl_.runhistory_)

Out:

<smac.runhistory.runhistory.RunHistory object at 0x7fb0ea85a730>

Runs are stored inside an OrderedDict called data:

print(len(automl.automl_.runhistory_.data))

Out:

10

Let’s iterative over all entries

for run_key in automl.automl_.runhistory_.data:
    print('#########')
    print(run_key)
    print(automl.automl_.runhistory_.data[run_key])

Out:

#########
RunKey(config_id=1, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.07801418439716312, time=1.52105712890625, status=<StatusType.SUCCESS: 1>, starttime=1650810992.7791235, endtime=1650810994.3170435, additional_info={'duration': 1.4409127235412598, 'num_run': 2, 'train_loss': 0.0, 'configuration_origin': 'Initial design'})
#########
RunKey(config_id=2, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.07092198581560283, time=1.260636806488037, status=<StatusType.SUCCESS: 1>, starttime=1650810994.3650343, endtime=1650810995.6451948, additional_info={'duration': 1.1834640502929688, 'num_run': 3, 'train_loss': 0.06315789473684208, 'configuration_origin': 'Initial design'})
#########
RunKey(config_id=3, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.028368794326241176, time=1.0884065628051758, status=<StatusType.SUCCESS: 1>, starttime=1650810995.724466, endtime=1650810996.8320656, additional_info={'duration': 1.0277214050292969, 'num_run': 4, 'train_loss': 0.04210526315789476, 'configuration_origin': 'Initial design'})
#########
RunKey(config_id=4, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.1063829787234043, time=0.6081836223602295, status=<StatusType.SUCCESS: 1>, starttime=1650810996.9254377, endtime=1650810997.5525362, additional_info={'duration': 0.5504865646362305, 'num_run': 5, 'train_loss': 0.0, 'configuration_origin': 'Initial design'})
#########
RunKey(config_id=5, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.11347517730496459, time=0.509354829788208, status=<StatusType.SUCCESS: 1>, starttime=1650810997.6593158, endtime=1650810998.1877139, additional_info={'duration': 0.4508519172668457, 'num_run': 6, 'train_loss': 0.09122807017543855, 'configuration_origin': 'Initial design'})
#########
RunKey(config_id=6, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.03546099290780147, time=0.6748337745666504, status=<StatusType.SUCCESS: 1>, starttime=1650811000.2524607, endtime=1650811000.9458997, additional_info={'duration': 0.614544153213501, 'num_run': 7, 'train_loss': 0.04561403508771933, 'configuration_origin': 'Random Search (sorted)'})
#########
RunKey(config_id=7, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.05673758865248224, time=0.6341619491577148, status=<StatusType.SUCCESS: 1>, starttime=1650811003.1334927, endtime=1650811003.786178, additional_info={'duration': 0.5746169090270996, 'num_run': 8, 'train_loss': 0.06315789473684208, 'configuration_origin': 'Random Search (sorted)'})
#########
RunKey(config_id=8, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.028368794326241176, time=0.5118927955627441, status=<StatusType.SUCCESS: 1>, starttime=1650811003.9431217, endtime=1650811004.4738126, additional_info={'duration': 0.45416998863220215, 'num_run': 9, 'train_loss': 0.007017543859649145, 'configuration_origin': 'Random Search'})
#########
RunKey(config_id=9, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.05673758865248224, time=0.6094412803649902, status=<StatusType.SUCCESS: 1>, starttime=1650811007.2232058, endtime=1650811007.8498619, additional_info={'duration': 0.5492424964904785, 'num_run': 10, 'train_loss': 0.06666666666666665, 'configuration_origin': 'Random Search (sorted)'})
#########
RunKey(config_id=10, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=1.0, time=0.0, status=<StatusType.STOP: 8>, starttime=1650811010.3512983, endtime=1650811010.3512986, additional_info={})

and have a detailed look at one entry:

run_key = list(automl.automl_.runhistory_.data.keys())[0]
run_value = automl.automl_.runhistory_.data[run_key]

The run_key contains all information describing a run:

print("Configuration ID:", run_key.config_id)
print("Instance:", run_key.instance_id)
print("Seed:", run_key.seed)
print("Budget:", run_key.budget)

Out:

Configuration ID: 1
Instance: {"task_id": "breast_cancer"}
Seed: 0
Budget: 0.0

and the configuration can be looked up in the run history as well:

print(automl.automl_.runhistory_.ids_config[run_key.config_id])

Out:

Configuration(values={
  'balancing:strategy': 'none',
  'classifier:__choice__': 'random_forest',
  'classifier:random_forest:bootstrap': 'True',
  'classifier:random_forest:criterion': 'gini',
  'classifier:random_forest:max_depth': 'None',
  'classifier:random_forest:max_features': 0.5,
  'classifier:random_forest:max_leaf_nodes': 'None',
  'classifier:random_forest:min_impurity_decrease': 0.0,
  'classifier:random_forest:min_samples_leaf': 1,
  'classifier:random_forest:min_samples_split': 2,
  'classifier:random_forest:min_weight_fraction_leaf': 0.0,
  'data_preprocessor:__choice__': 'feature_type',
  'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'one_hot_encoding',
  'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'minority_coalescer',
  'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.01,
  'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'mean',
  'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'standardize',
  'feature_preprocessor:__choice__': 'pca',
  'feature_preprocessor:pca:keep_variance': 0.9999,
  'feature_preprocessor:pca:whiten': 'False',
})

The only other important entry is the budget in case you are using auto-sklearn with Successive Halving. The remaining parts of the key can be ignored for auto-sklearn and are only there because the underlying optimizer, SMAC, can handle more general problems, too.

The run_value contains all output from running the configuration:

print("Cost:", run_value.cost)
print("Time:", run_value.time)
print("Status:", run_value.status)
print("Additional information:", run_value.additional_info)
print("Start time:", run_value.starttime)
print("End time", run_value.endtime)

Out:

Cost: 0.07801418439716312
Time: 1.52105712890625
Status: StatusType.SUCCESS
Additional information: {'duration': 1.4409127235412598, 'num_run': 2, 'train_loss': 0.0, 'configuration_origin': 'Initial design'}
Start time: 1650810992.7791235
End time 1650810994.3170435

Cost is basically the same as a loss. In case the metric to optimize for should be maximized, it is internally transformed into a minimization metric. Additionally, the status type gives information on whether the run was successful, while the additional information’s most interesting entry is the internal training loss. Furthermore, there is detailed information on the runtime available.

As an example, let’s find the best configuration evaluated. As Auto-sklearn solves a minimization problem internally, we need to look for the entry with the lowest loss:

losses_and_configurations = [
    (run_value.cost, run_key.config_id)
    for run_key, run_value in automl.automl_.runhistory_.data.items()
]
losses_and_configurations.sort()
print("Lowest loss:", losses_and_configurations[0][0])
print(
    "Best configuration:",
    automl.automl_.runhistory_.ids_config[losses_and_configurations[0][1]]
)

Out:

Lowest loss: 0.028368794326241176
Best configuration: Configuration(values={
  'balancing:strategy': 'weighting',
  'classifier:__choice__': 'mlp',
  'classifier:mlp:activation': 'tanh',
  'classifier:mlp:alpha': 1.103855734598575e-05,
  'classifier:mlp:batch_size': 'auto',
  'classifier:mlp:beta_1': 0.9,
  'classifier:mlp:beta_2': 0.999,
  'classifier:mlp:early_stopping': 'valid',
  'classifier:mlp:epsilon': 1e-08,
  'classifier:mlp:hidden_layer_depth': 3,
  'classifier:mlp:learning_rate_init': 0.00014375616988222174,
  'classifier:mlp:n_iter_no_change': 32,
  'classifier:mlp:num_nodes_per_layer': 229,
  'classifier:mlp:shuffle': 'True',
  'classifier:mlp:solver': 'adam',
  'classifier:mlp:tol': 0.0001,
  'classifier:mlp:validation_fraction': 0.1,
  'data_preprocessor:__choice__': 'feature_type',
  'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'no_encoding',
  'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'minority_coalescer',
  'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.002766772136115771,
  'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'most_frequent',
  'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'quantile_transformer',
  'data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:n_quantiles': 180,
  'data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:output_distribution': 'uniform',
  'feature_preprocessor:__choice__': 'pca',
  'feature_preprocessor:pca:keep_variance': 0.7895711479212801,
  'feature_preprocessor:pca:whiten': 'True',
})

Detailed statistics about the search - part 2

To maintain compatibility with scikit-learn, Auto-sklearn gives the same data as cv_results_.

print(automl.cv_results_)

Out:

{'mean_test_score': array([0.92198582, 0.92907801, 0.97163121, 0.89361702, 0.88652482,
       0.96453901, 0.94326241, 0.97163121, 0.94326241]), 'mean_fit_time': array([1.52105713, 1.26063681, 1.08840656, 0.60818362, 0.50935483,
       0.67483377, 0.63416195, 0.5118928 , 0.60944128]), 'params': [{'balancing:strategy': 'none', 'classifier:__choice__': 'random_forest', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:random_forest:bootstrap': 'True', 'classifier:random_forest:criterion': 'gini', 'classifier:random_forest:max_depth': 'None', 'classifier:random_forest:max_features': 0.5, 'classifier:random_forest:max_leaf_nodes': 'None', 'classifier:random_forest:min_impurity_decrease': 0.0, 'classifier:random_forest:min_samples_leaf': 1, 'classifier:random_forest:min_samples_split': 2, 'classifier:random_forest:min_weight_fraction_leaf': 0.0, 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'one_hot_encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'minority_coalescer', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'mean', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'standardize', 'feature_preprocessor:pca:keep_variance': 0.9999, 'feature_preprocessor:pca:whiten': 'False', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.01}, {'balancing:strategy': 'none', 'classifier:__choice__': 'random_forest', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:random_forest:bootstrap': 'True', 'classifier:random_forest:criterion': 'gini', 'classifier:random_forest:max_depth': 'None', 'classifier:random_forest:max_features': 0.9331254454871041, 'classifier:random_forest:max_leaf_nodes': 'None', 'classifier:random_forest:min_impurity_decrease': 0.0, 'classifier:random_forest:min_samples_leaf': 2, 'classifier:random_forest:min_samples_split': 20, 'classifier:random_forest:min_weight_fraction_leaf': 0.0, 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'no_encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'minority_coalescer', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'mean', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'none', 'feature_preprocessor:pca:keep_variance': 0.9967857433838874, 'feature_preprocessor:pca:whiten': 'False', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.005069923784737444}, {'balancing:strategy': 'weighting', 'classifier:__choice__': 'mlp', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:mlp:activation': 'tanh', 'classifier:mlp:alpha': 1.103855734598575e-05, 'classifier:mlp:batch_size': 'auto', 'classifier:mlp:beta_1': 0.9, 'classifier:mlp:beta_2': 0.999, 'classifier:mlp:early_stopping': 'valid', 'classifier:mlp:epsilon': 1e-08, 'classifier:mlp:hidden_layer_depth': 3, 'classifier:mlp:learning_rate_init': 0.00014375616988222174, 'classifier:mlp:n_iter_no_change': 32, 'classifier:mlp:num_nodes_per_layer': 229, 'classifier:mlp:shuffle': 'True', 'classifier:mlp:solver': 'adam', 'classifier:mlp:tol': 0.0001, 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'no_encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'minority_coalescer', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'most_frequent', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'quantile_transformer', 'feature_preprocessor:pca:keep_variance': 0.7895711479212801, 'feature_preprocessor:pca:whiten': 'True', 'classifier:mlp:validation_fraction': 0.1, 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.002766772136115771, 'data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:n_quantiles': 180, 'data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:output_distribution': 'uniform'}, {'balancing:strategy': 'weighting', 'classifier:__choice__': 'k_nearest_neighbors', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:k_nearest_neighbors:n_neighbors': 4, 'classifier:k_nearest_neighbors:p': 2, 'classifier:k_nearest_neighbors:weights': 'distance', 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'no_encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'minority_coalescer', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'mean', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'normalize', 'feature_preprocessor:pca:keep_variance': 0.8047274080856589, 'feature_preprocessor:pca:whiten': 'False', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.008015420020402715}, {'balancing:strategy': 'none', 'classifier:__choice__': 'libsvm_svc', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:libsvm_svc:C': 100.5905006626969, 'classifier:libsvm_svc:gamma': 0.011333066835975528, 'classifier:libsvm_svc:kernel': 'poly', 'classifier:libsvm_svc:max_iter': -1, 'classifier:libsvm_svc:shrinking': 'True', 'classifier:libsvm_svc:tol': 0.012391313886912093, 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'one_hot_encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'minority_coalescer', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'mean', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'minmax', 'feature_preprocessor:pca:keep_variance': 0.9290439925152777, 'feature_preprocessor:pca:whiten': 'False', 'classifier:libsvm_svc:coef0': 0.08087614244138486, 'classifier:libsvm_svc:degree': 3, 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.010000000000000004}, {'balancing:strategy': 'weighting', 'classifier:__choice__': 'liblinear_svc', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:liblinear_svc:C': 10.369811497206404, 'classifier:liblinear_svc:dual': 'False', 'classifier:liblinear_svc:fit_intercept': 'True', 'classifier:liblinear_svc:intercept_scaling': 1, 'classifier:liblinear_svc:loss': 'squared_hinge', 'classifier:liblinear_svc:multi_class': 'ovr', 'classifier:liblinear_svc:penalty': 'l2', 'classifier:liblinear_svc:tol': 0.0015130257264171173, 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'no_encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'no_coalescense', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'mean', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'power_transformer', 'feature_preprocessor:pca:keep_variance': 0.6661824659281315, 'feature_preprocessor:pca:whiten': 'False'}, {'balancing:strategy': 'weighting', 'classifier:__choice__': 'decision_tree', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:decision_tree:criterion': 'gini', 'classifier:decision_tree:max_depth_factor': 0.14069368736662313, 'classifier:decision_tree:max_features': 1.0, 'classifier:decision_tree:max_leaf_nodes': 'None', 'classifier:decision_tree:min_impurity_decrease': 0.0, 'classifier:decision_tree:min_samples_leaf': 5, 'classifier:decision_tree:min_samples_split': 19, 'classifier:decision_tree:min_weight_fraction_leaf': 0.0, 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'no_encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'no_coalescense', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'mean', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'quantile_transformer', 'feature_preprocessor:pca:keep_variance': 0.7772788812704434, 'feature_preprocessor:pca:whiten': 'True', 'data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:n_quantiles': 526, 'data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:output_distribution': 'uniform'}, {'balancing:strategy': 'none', 'classifier:__choice__': 'sgd', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:sgd:alpha': 1.0333981795670635e-07, 'classifier:sgd:average': 'False', 'classifier:sgd:fit_intercept': 'True', 'classifier:sgd:learning_rate': 'constant', 'classifier:sgd:loss': 'modified_huber', 'classifier:sgd:penalty': 'l2', 'classifier:sgd:tol': 2.5846457091661748e-05, 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'minority_coalescer', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'most_frequent', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'minmax', 'feature_preprocessor:pca:keep_variance': 0.9755563101648113, 'feature_preprocessor:pca:whiten': 'True', 'classifier:sgd:epsilon': 0.03457277874230573, 'classifier:sgd:eta0': 0.004635634934629583, 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.00015788887334393714}, {'balancing:strategy': 'none', 'classifier:__choice__': 'sgd', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:sgd:alpha': 0.0006046872822704108, 'classifier:sgd:average': 'False', 'classifier:sgd:fit_intercept': 'True', 'classifier:sgd:learning_rate': 'invscaling', 'classifier:sgd:loss': 'modified_huber', 'classifier:sgd:penalty': 'elasticnet', 'classifier:sgd:tol': 1.7244397014112777e-05, 'data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': 'no_encoding', 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': 'no_coalescense', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'mean', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'power_transformer', 'feature_preprocessor:pca:keep_variance': 0.9941379232526211, 'feature_preprocessor:pca:whiten': 'False', 'classifier:sgd:epsilon': 0.0006085470273398056, 'classifier:sgd:eta0': 0.0003474820560182061, 'classifier:sgd:l1_ratio': 4.5783995454757295e-09, 'classifier:sgd:power_t': 0.6064541566557635}], 'rank_test_scores': array([7, 6, 1, 8, 9, 3, 4, 1, 4]), 'status': ['Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success', 'Success'], 'budgets': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'param_balancing:strategy': masked_array(data=['none', 'none', 'weighting', 'weighting', 'none',
                   'weighting', 'weighting', 'none', 'none'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U9'), 'param_classifier:__choice__': masked_array(data=['random_forest', 'random_forest', 'mlp',
                   'k_nearest_neighbors', 'libsvm_svc', 'liblinear_svc',
                   'decision_tree', 'sgd', 'sgd'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U19'), 'param_data_preprocessor:__choice__': masked_array(data=['feature_type', 'feature_type', 'feature_type',
                   'feature_type', 'feature_type', 'feature_type',
                   'feature_type', 'feature_type', 'feature_type'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U12'), 'param_feature_preprocessor:__choice__': masked_array(data=['pca', 'pca', 'pca', 'pca', 'pca', 'pca', 'pca', 'pca',
                   'pca'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U3'), 'param_classifier:adaboost:algorithm': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:adaboost:learning_rate': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:adaboost:max_depth': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:adaboost:n_estimators': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:bernoulli_nb:alpha': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:bernoulli_nb:fit_prior': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:decision_tree:criterion': masked_array(data=[--, --, --, --, --, --, 'gini', --, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:decision_tree:max_depth_factor': masked_array(data=[--, --, --, --, --, --, 0.14069368736662313, --, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  True,
                    True],
       fill_value=1e+20), 'param_classifier:decision_tree:max_features': masked_array(data=[--, --, --, --, --, --, 1.0, --, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  True,
                    True],
       fill_value=1e+20), 'param_classifier:decision_tree:max_leaf_nodes': masked_array(data=[--, --, --, --, --, --, 'None', --, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:decision_tree:min_impurity_decrease': masked_array(data=[--, --, --, --, --, --, 0.0, --, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  True,
                    True],
       fill_value=1e+20), 'param_classifier:decision_tree:min_samples_leaf': masked_array(data=[--, --, --, --, --, --, 5.0, --, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  True,
                    True],
       fill_value=1e+20), 'param_classifier:decision_tree:min_samples_split': masked_array(data=[--, --, --, --, --, --, 19.0, --, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  True,
                    True],
       fill_value=1e+20), 'param_classifier:decision_tree:min_weight_fraction_leaf': masked_array(data=[--, --, --, --, --, --, 0.0, --, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  True,
                    True],
       fill_value=1e+20), 'param_classifier:extra_trees:bootstrap': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:criterion': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:max_depth': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:max_features': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:max_leaf_nodes': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:min_impurity_decrease': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:min_samples_leaf': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:min_samples_split': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:min_weight_fraction_leaf': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:early_stop': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:l2_regularization': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:learning_rate': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:loss': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:max_bins': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:max_depth': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:max_leaf_nodes': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:min_samples_leaf': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:scoring': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:tol': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:k_nearest_neighbors:n_neighbors': masked_array(data=[--, --, --, 4.0, --, --, --, --, --],
             mask=[ True,  True,  True, False,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:k_nearest_neighbors:p': masked_array(data=[--, --, --, 2.0, --, --, --, --, --],
             mask=[ True,  True,  True, False,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:k_nearest_neighbors:weights': masked_array(data=[--, --, --, 'distance', --, --, --, --, --],
             mask=[ True,  True,  True, False,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:lda:shrinkage': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:lda:tol': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:liblinear_svc:C': masked_array(data=[--, --, --, --, --, 10.369811497206404, --, --, --],
             mask=[ True,  True,  True,  True,  True, False,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:liblinear_svc:dual': masked_array(data=[--, --, --, --, --, 'False', --, --, --],
             mask=[ True,  True,  True,  True,  True, False,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:liblinear_svc:fit_intercept': masked_array(data=[--, --, --, --, --, 'True', --, --, --],
             mask=[ True,  True,  True,  True,  True, False,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:liblinear_svc:intercept_scaling': masked_array(data=[--, --, --, --, --, 1.0, --, --, --],
             mask=[ True,  True,  True,  True,  True, False,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:liblinear_svc:loss': masked_array(data=[--, --, --, --, --, 'squared_hinge', --, --, --],
             mask=[ True,  True,  True,  True,  True, False,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:liblinear_svc:multi_class': masked_array(data=[--, --, --, --, --, 'ovr', --, --, --],
             mask=[ True,  True,  True,  True,  True, False,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:liblinear_svc:penalty': masked_array(data=[--, --, --, --, --, 'l2', --, --, --],
             mask=[ True,  True,  True,  True,  True, False,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:liblinear_svc:tol': masked_array(data=[--, --, --, --, --, 0.0015130257264171173, --, --, --],
             mask=[ True,  True,  True,  True,  True, False,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:libsvm_svc:C': masked_array(data=[--, --, --, --, 100.5905006626969, --, --, --, --],
             mask=[ True,  True,  True,  True, False,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:libsvm_svc:gamma': masked_array(data=[--, --, --, --, 0.011333066835975528, --, --, --, --],
             mask=[ True,  True,  True,  True, False,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:libsvm_svc:kernel': masked_array(data=[--, --, --, --, 'poly', --, --, --, --],
             mask=[ True,  True,  True,  True, False,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:libsvm_svc:max_iter': masked_array(data=[--, --, --, --, -1.0, --, --, --, --],
             mask=[ True,  True,  True,  True, False,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:libsvm_svc:shrinking': masked_array(data=[--, --, --, --, 'True', --, --, --, --],
             mask=[ True,  True,  True,  True, False,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:libsvm_svc:tol': masked_array(data=[--, --, --, --, 0.012391313886912093, --, --, --, --],
             mask=[ True,  True,  True,  True, False,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:activation': masked_array(data=[--, --, 'tanh', --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:mlp:alpha': masked_array(data=[--, --, 1.103855734598575e-05, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:batch_size': masked_array(data=[--, --, 'auto', --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:mlp:beta_1': masked_array(data=[--, --, 0.9, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:beta_2': masked_array(data=[--, --, 0.999, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:early_stopping': masked_array(data=[--, --, 'valid', --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:mlp:epsilon': masked_array(data=[--, --, 1e-08, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:hidden_layer_depth': masked_array(data=[--, --, 3.0, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:learning_rate_init': masked_array(data=[--, --, 0.00014375616988222174, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:n_iter_no_change': masked_array(data=[--, --, 32.0, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:num_nodes_per_layer': masked_array(data=[--, --, 229.0, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:shuffle': masked_array(data=[--, --, 'True', --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:mlp:solver': masked_array(data=[--, --, 'adam', --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:mlp:tol': masked_array(data=[--, --, 0.0001, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:passive_aggressive:C': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:passive_aggressive:average': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:passive_aggressive:fit_intercept': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:passive_aggressive:loss': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:passive_aggressive:tol': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:qda:reg_param': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:random_forest:bootstrap': masked_array(data=['True', 'True', --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:random_forest:criterion': masked_array(data=['gini', 'gini', --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:random_forest:max_depth': masked_array(data=['None', 'None', --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:random_forest:max_features': masked_array(data=[0.5, 0.9331254454871041, --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:random_forest:max_leaf_nodes': masked_array(data=['None', 'None', --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:random_forest:min_impurity_decrease': masked_array(data=[0.0, 0.0, --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:random_forest:min_samples_leaf': masked_array(data=[1.0, 2.0, --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:random_forest:min_samples_split': masked_array(data=[2.0, 20.0, --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:random_forest:min_weight_fraction_leaf': masked_array(data=[0.0, 0.0, --, --, --, --, --, --, --],
             mask=[False, False,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:sgd:alpha': masked_array(data=[--, --, --, --, --, --, --, 1.0333981795670635e-07,
                   0.0006046872822704108],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value=1e+20), 'param_classifier:sgd:average': masked_array(data=[--, --, --, --, --, --, --, 'False', 'False'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:fit_intercept': masked_array(data=[--, --, --, --, --, --, --, 'True', 'True'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:learning_rate': masked_array(data=[--, --, --, --, --, --, --, 'constant', 'invscaling'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:loss': masked_array(data=[--, --, --, --, --, --, --, 'modified_huber',
                   'modified_huber'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:penalty': masked_array(data=[--, --, --, --, --, --, --, 'l2', 'elasticnet'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:tol': masked_array(data=[--, --, --, --, --, --, --, 2.5846457091661748e-05,
                   1.7244397014112777e-05],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value=1e+20), 'param_data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__': masked_array(data=['one_hot_encoding', 'no_encoding', 'no_encoding',
                   'no_encoding', 'one_hot_encoding', 'no_encoding',
                   'no_encoding', 'encoding', 'no_encoding'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U16'), 'param_data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__': masked_array(data=['minority_coalescer', 'minority_coalescer',
                   'minority_coalescer', 'minority_coalescer',
                   'minority_coalescer', 'no_coalescense',
                   'no_coalescense', 'minority_coalescer',
                   'no_coalescense'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U18'), 'param_data_preprocessor:feature_type:numerical_transformer:imputation:strategy': masked_array(data=['mean', 'mean', 'most_frequent', 'mean', 'mean',
                   'mean', 'mean', 'most_frequent', 'mean'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U13'), 'param_data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': masked_array(data=['standardize', 'none', 'quantile_transformer',
                   'normalize', 'minmax', 'power_transformer',
                   'quantile_transformer', 'minmax', 'power_transformer'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U20'), 'param_feature_preprocessor:pca:keep_variance': masked_array(data=[0.9999, 0.9967857433838874, 0.7895711479212801,
                   0.8047274080856589, 0.9290439925152777,
                   0.6661824659281315, 0.7772788812704434,
                   0.9755563101648113, 0.9941379232526211],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value=1e+20), 'param_feature_preprocessor:pca:whiten': masked_array(data=['False', 'False', 'True', 'False', 'False', 'False',
                   'True', 'True', 'False'],
             mask=[False, False, False, False, False, False, False, False,
                   False],
       fill_value='N/A',
            dtype='<U5'), 'param_classifier:gradient_boosting:n_iter_no_change': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:validation_fraction': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:lda:shrinkage_factor': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:libsvm_svc:coef0': masked_array(data=[--, --, --, --, 0.08087614244138486, --, --, --, --],
             mask=[ True,  True,  True,  True, False,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:libsvm_svc:degree': masked_array(data=[--, --, --, --, 3.0, --, --, --, --],
             mask=[ True,  True,  True,  True, False,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:mlp:validation_fraction': masked_array(data=[--, --, 0.1, --, --, --, --, --, --],
             mask=[ True,  True, False,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20), 'param_classifier:sgd:epsilon': masked_array(data=[--, --, --, --, --, --, --, 0.03457277874230573,
                   0.0006085470273398056],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value=1e+20), 'param_classifier:sgd:eta0': masked_array(data=[--, --, --, --, --, --, --, 0.004635634934629583,
                   0.0003474820560182061],
             mask=[ True,  True,  True,  True,  True,  True,  True, False,
                   False],
       fill_value=1e+20), 'param_classifier:sgd:l1_ratio': masked_array(data=[--, --, --, --, --, --, --, --, 4.5783995454757295e-09],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                   False],
       fill_value=1e+20), 'param_classifier:sgd:power_t': masked_array(data=[--, --, --, --, --, --, --, --, 0.6064541566557635],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                   False],
       fill_value=1e+20), 'param_data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': masked_array(data=[0.01, 0.005069923784737444, 0.002766772136115771,
                   0.008015420020402715, 0.010000000000000004, --, --,
                   0.00015788887334393714, --],
             mask=[False, False, False, False, False,  True,  True, False,
                    True],
       fill_value=1e+20), 'param_data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:n_quantiles': masked_array(data=[--, --, 180.0, --, --, --, 526.0, --, --],
             mask=[ True,  True, False,  True,  True,  True, False,  True,
                    True],
       fill_value=1e+20), 'param_data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:output_distribution': masked_array(data=[--, --, 'uniform', --, --, --, 'uniform', --, --],
             mask=[ True,  True, False,  True,  True,  True, False,  True,
                    True],
       fill_value='N/A',
            dtype='<U32'), 'param_data_preprocessor:feature_type:numerical_transformer:rescaling:robust_scaler:q_max': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64), 'param_data_preprocessor:feature_type:numerical_transformer:rescaling:robust_scaler:q_min': masked_array(data=[--, --, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True,
                    True],
       fill_value=1e+20,
            dtype=float64)}

Inspect the components of the best model

Iterate over the components of the model and print The explained variance ratio per stage

for i, (weight, pipeline) in enumerate(automl.get_models_with_weights()):
    for stage_name, component in pipeline.named_steps.items():
        if 'feature_preprocessor' in stage_name:
            print(
                "The {}th pipeline has a explained variance of {}".format(
                    i,
                    # The component is an instance of AutoSklearnChoice.
                    # Access the sklearn object via the choice attribute
                    # We want the explained variance attributed of
                    # each principal component
                    component.choice.preprocessor.explained_variance_ratio_
                )
            )

Out:

The 0th pipeline has a explained variance of [0.49503611 0.16649281 0.09111888 0.07213284 0.04865917 0.03208923
 0.01851537 0.01223987 0.0104432  0.01006215 0.00894849 0.0076293
 0.00684163]
The 1th pipeline has a explained variance of [0.98080571 0.01684553]
The 2th pipeline has a explained variance of [0.44685232 0.17122959 0.1085501 ]
The 3th pipeline has a explained variance of [0.49503611 0.16649281 0.09111888 0.07213284 0.04865917 0.03208923
 0.01851537 0.01223987]
The 4th pipeline has a explained variance of [0.45954164 0.18010277 0.09814953 0.06334655]
The 5th pipeline has a explained variance of [0.44685232 0.17122959 0.1085501  0.07063243 0.06437417 0.03986668
 0.02462169 0.01589975 0.01257378 0.00948519 0.00858029 0.0067563
 0.0059319  0.00431052 0.0030875  0.00172583]
The 6th pipeline has a explained variance of [4.32956881e-01 1.79057296e-01 1.11737571e-01 6.80724345e-02
 5.94611519e-02 3.70629898e-02 2.38430977e-02 1.49326086e-02
 1.37641366e-02 1.13704890e-02 1.03737258e-02 8.74116751e-03
 7.57629717e-03 4.86528503e-03 3.32225143e-03 2.55773043e-03
 2.20759805e-03 1.88675402e-03 1.36245140e-03 1.03409213e-03
 8.39749085e-04 7.91287172e-04 6.75655689e-04 5.42961621e-04
 5.02641737e-04 2.07827509e-04 1.74597367e-04]
The 7th pipeline has a explained variance of [0.76699224 0.17152095]
The 8th pipeline has a explained variance of [0.4595393  0.18012072 0.09809101 0.06332899]

Total running time of the script: ( 0 minutes 29.857 seconds)

Gallery generated by Sphinx-Gallery