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.

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:

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.951048951048951

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 list of tuples, each tuple being the model weight in the ensemble and the model itself.

print(automl.show_models())

Out:

[(0.340000, SimpleClassificationPipeline({'balancing:strategy': 'none', 'classifier:__choice__': 'sgd', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:sgd:alpha': 1.0333981795670597e-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.004635634934629576, 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.00015788887334393744},
dataset_properties={
  'task': 1,
  'sparse': False,
  'multilabel': False,
  'multiclass': False,
  'target_type': 'classification',
  'signed': False})),
(0.160000, SimpleClassificationPipeline({'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'},
dataset_properties={
  'task': 1,
  'sparse': False,
  'multilabel': False,
  'multiclass': False,
  'target_type': 'classification',
  'signed': False})),
(0.140000, SimpleClassificationPipeline({'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'},
dataset_properties={
  'task': 1,
  'sparse': False,
  'multilabel': False,
  'multiclass': False,
  'target_type': 'classification',
  'signed': False})),
(0.120000, SimpleClassificationPipeline({'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},
dataset_properties={
  'task': 1,
  'sparse': False,
  'multilabel': False,
  'multiclass': False,
  'target_type': 'classification',
  'signed': False})),
(0.120000, SimpleClassificationPipeline({'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},
dataset_properties={
  'task': 1,
  'sparse': False,
  'multilabel': False,
  'multiclass': False,
  'target_type': 'classification',
  'signed': False})),
(0.040000, SimpleClassificationPipeline({'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'},
dataset_properties={
  'task': 1,
  'sparse': False,
  'multilabel': False,
  'multiclass': False,
  'target_type': 'classification',
  'signed': False})),
(0.040000, SimpleClassificationPipeline({'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},
dataset_properties={
  'task': 1,
  'sparse': False,
  'multilabel': False,
  'multiclass': False,
  'target_type': 'classification',
  'signed': False})),
(0.040000, SimpleClassificationPipeline({'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},
dataset_properties={
  'task': 1,
  'sparse': False,
  'multilabel': False,
  'multiclass': False,
  'target_type': 'classification',
  'signed': False})),
]

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 0x7f9379a40f10>

Runs are stored inside an OrderedDict called data:

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

Out:

9

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.9545562267303467, status=<StatusType.SUCCESS: 1>, starttime=1636488092.7797232, endtime=1636488094.7563245, additional_info={'duration': 1.8572731018066406, '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.6941378116607666, status=<StatusType.SUCCESS: 1>, starttime=1636488094.8219044, endtime=1636488096.537016, additional_info={'duration': 1.6041510105133057, '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.6140191555023193, status=<StatusType.SUCCESS: 1>, starttime=1636488096.6401973, endtime=1636488098.2758095, additional_info={'duration': 1.5358099937438965, '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.6702926158905029, status=<StatusType.SUCCESS: 1>, starttime=1636488098.4037113, endtime=1636488099.0938587, additional_info={'duration': 0.6066544055938721, '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.5629768371582031, status=<StatusType.SUCCESS: 1>, starttime=1636488099.2329674, endtime=1636488099.8163307, additional_info={'duration': 0.5027651786804199, '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.9639365673065186, status=<StatusType.SUCCESS: 1>, starttime=1636488102.2641013, endtime=1636488103.2531207, additional_info={'duration': 0.8704240322113037, '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.8888447284698486, status=<StatusType.SUCCESS: 1>, starttime=1636488105.9350605, endtime=1636488106.851598, additional_info={'duration': 0.7990398406982422, '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.7385828495025635, status=<StatusType.SUCCESS: 1>, starttime=1636488107.1076975, endtime=1636488107.8694334, additional_info={'duration': 0.6549544334411621, '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=1.0, time=0.0, status=<StatusType.STOP: 8>, starttime=1636488110.8355012, endtime=1636488110.8355012, 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:
  balancing:strategy, Value: 'none'
  classifier:__choice__, Value: 'random_forest'
  classifier:random_forest:bootstrap, Value: 'True'
  classifier:random_forest:criterion, Value: 'gini'
  classifier:random_forest:max_depth, Constant: 'None'
  classifier:random_forest:max_features, Value: 0.5
  classifier:random_forest:max_leaf_nodes, Constant: 'None'
  classifier:random_forest:min_impurity_decrease, Constant: 0.0
  classifier:random_forest:min_samples_leaf, Value: 1
  classifier:random_forest:min_samples_split, Value: 2
  classifier:random_forest:min_weight_fraction_leaf, Constant: 0.0
  data_preprocessor:__choice__, Value: 'feature_type'
  data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__, Value: 'one_hot_encoding'
  data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__, Value: 'minority_coalescer'
  data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction, Value: 0.01
  data_preprocessor:feature_type:numerical_transformer:imputation:strategy, Value: 'mean'
  data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__, Value: 'standardize'
  feature_preprocessor:__choice__, Value: 'pca'
  feature_preprocessor:pca:keep_variance, Value: 0.9999
  feature_preprocessor:pca:whiten, Value: '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.9545562267303467
Status: StatusType.SUCCESS
Additional information: {'duration': 1.8572731018066406, 'num_run': 2, 'train_loss': 0.0, 'configuration_origin': 'Initial design'}
Start time: 1636488092.7797232
End time 1636488094.7563245

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:
  balancing:strategy, Value: 'weighting'
  classifier:__choice__, Value: 'mlp'
  classifier:mlp:activation, Value: 'tanh'
  classifier:mlp:alpha, Value: 1.103855734598575e-05
  classifier:mlp:batch_size, Constant: 'auto'
  classifier:mlp:beta_1, Constant: 0.9
  classifier:mlp:beta_2, Constant: 0.999
  classifier:mlp:early_stopping, Value: 'valid'
  classifier:mlp:epsilon, Constant: 1e-08
  classifier:mlp:hidden_layer_depth, Value: 3
  classifier:mlp:learning_rate_init, Value: 0.00014375616988222174
  classifier:mlp:n_iter_no_change, Constant: 32
  classifier:mlp:num_nodes_per_layer, Value: 229
  classifier:mlp:shuffle, Constant: 'True'
  classifier:mlp:solver, Constant: 'adam'
  classifier:mlp:tol, Constant: 0.0001
  classifier:mlp:validation_fraction, Constant: 0.1
  data_preprocessor:__choice__, Value: 'feature_type'
  data_preprocessor:feature_type:categorical_transformer:categorical_encoding:__choice__, Value: 'no_encoding'
  data_preprocessor:feature_type:categorical_transformer:category_coalescence:__choice__, Value: 'minority_coalescer'
  data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction, Value: 0.002766772136115771
  data_preprocessor:feature_type:numerical_transformer:imputation:strategy, Value: 'most_frequent'
  data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__, Value: 'quantile_transformer'
  data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:n_quantiles, Value: 180
  data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:output_distribution, Value: 'uniform'
  feature_preprocessor:__choice__, Value: 'pca'
  feature_preprocessor:pca:keep_variance, Value: 0.7895711479212801
  feature_preprocessor:pca:whiten, Value: '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]), 'mean_fit_time': array([1.95455623, 1.69413781, 1.61401916, 0.67029262, 0.56297684,
       0.96393657, 0.88884473, 0.73858285]), '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.0333981795670597e-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.004635634934629576, 'data_preprocessor:feature_type:categorical_transformer:category_coalescence:minority_coalescer:minimum_fraction': 0.00015788887334393744}], 'rank_test_scores': array([6, 5, 1, 7, 8, 3, 4, 1]), 'status': ['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], 'param_balancing:strategy': masked_array(data=['none', 'none', 'weighting', 'weighting', 'none',
                   'weighting', 'weighting', 'none'],
             mask=[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'],
             mask=[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'],
             mask=[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'],
             mask=[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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:adaboost:learning_rate': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:adaboost:n_estimators': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:bernoulli_nb:fit_prior': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       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],
       fill_value=1e+20), 'param_classifier:decision_tree:max_features': masked_array(data=[--, --, --, --, --, --, 1.0, --],
             mask=[ True,  True,  True,  True,  True,  True, False,  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],
       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],
       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],
       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],
       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],
       fill_value=1e+20), 'param_classifier:extra_trees:bootstrap': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:extra_trees:max_depth': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       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],
       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],
       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],
       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],
       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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:early_stop': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:learning_rate': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:max_bins': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       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],
       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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:scoring': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       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],
       fill_value=1e+20), 'param_classifier:k_nearest_neighbors:p': masked_array(data=[--, --, --, 2.0, --, --, --, --],
             mask=[ True,  True,  True, False,  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],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:lda:shrinkage': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       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],
       fill_value=1e+20), 'param_classifier:liblinear_svc:dual': masked_array(data=[--, --, --, --, --, 'False', --, --],
             mask=[ True,  True,  True,  True,  True, False,  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],
       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],
       fill_value=1e+20), 'param_classifier:liblinear_svc:loss': masked_array(data=[--, --, --, --, --, 'squared_hinge', --, --],
             mask=[ True,  True,  True,  True,  True, False,  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],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:liblinear_svc:penalty': masked_array(data=[--, --, --, --, --, 'l2', --, --],
             mask=[ True,  True,  True,  True,  True, False,  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],
       fill_value=1e+20), 'param_classifier:libsvm_svc:C': masked_array(data=[--, --, --, --, 100.5905006626969, --, --, --],
             mask=[ True,  True,  True,  True, False,  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],
       fill_value=1e+20), 'param_classifier:libsvm_svc:kernel': masked_array(data=[--, --, --, --, 'poly', --, --, --],
             mask=[ True,  True,  True,  True, False,  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],
       fill_value=1e+20), 'param_classifier:libsvm_svc:shrinking': masked_array(data=[--, --, --, --, 'True', --, --, --],
             mask=[ True,  True,  True,  True, False,  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],
       fill_value=1e+20), 'param_classifier:mlp:activation': masked_array(data=[--, --, 'tanh', --, --, --, --, --],
             mask=[ True,  True, False,  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],
       fill_value=1e+20), 'param_classifier:mlp:batch_size': masked_array(data=[--, --, 'auto', --, --, --, --, --],
             mask=[ True,  True, False,  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],
       fill_value=1e+20), 'param_classifier:mlp:beta_2': masked_array(data=[--, --, 0.999, --, --, --, --, --],
             mask=[ True,  True, False,  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],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:mlp:epsilon': masked_array(data=[--, --, 1e-08, --, --, --, --, --],
             mask=[ True,  True, False,  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],
       fill_value=1e+20), 'param_classifier:mlp:learning_rate_init': masked_array(data=[--, --, 0.00014375616988222174, --, --, --, --, --],
             mask=[ True,  True, False,  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],
       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],
       fill_value=1e+20), 'param_classifier:mlp:shuffle': masked_array(data=[--, --, 'True', --, --, --, --, --],
             mask=[ True,  True, False,  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],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:mlp:tol': masked_array(data=[--, --, 0.0001, --, --, --, --, --],
             mask=[ True,  True, False,  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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:passive_aggressive:average': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:passive_aggressive:loss': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:qda:reg_param': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       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],
       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],
       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],
       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],
       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],
       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],
       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],
       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],
       fill_value=1e+20), 'param_classifier:sgd:alpha': masked_array(data=[--, --, --, --, --, --, --, 1.0333981795670597e-07],
             mask=[ True,  True,  True,  True,  True,  True,  True, False],
       fill_value=1e+20), 'param_classifier:sgd:average': masked_array(data=[--, --, --, --, --, --, --, 'False'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:fit_intercept': masked_array(data=[--, --, --, --, --, --, --, 'True'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:learning_rate': masked_array(data=[--, --, --, --, --, --, --, 'constant'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:loss': masked_array(data=[--, --, --, --, --, --, --, 'modified_huber'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:penalty': masked_array(data=[--, --, --, --, --, --, --, 'l2'],
             mask=[ True,  True,  True,  True,  True,  True,  True, False],
       fill_value='N/A',
            dtype='<U32'), 'param_classifier:sgd:tol': masked_array(data=[--, --, --, --, --, --, --, 2.5846457091661748e-05],
             mask=[ True,  True,  True,  True,  True,  True,  True, 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'],
             mask=[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'],
             mask=[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'],
             mask=[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'],
             mask=[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],
             mask=[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'],
             mask=[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],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:gradient_boosting:validation_fraction': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ 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],
       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],
       fill_value=1e+20), 'param_classifier:libsvm_svc:degree': masked_array(data=[--, --, --, --, 3.0, --, --, --],
             mask=[ True,  True,  True,  True, False,  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],
       fill_value=1e+20), 'param_classifier:sgd:epsilon': masked_array(data=[--, --, --, --, --, --, --, 0.03457277874230573],
             mask=[ True,  True,  True,  True,  True,  True,  True, False],
       fill_value=1e+20), 'param_classifier:sgd:eta0': masked_array(data=[--, --, --, --, --, --, --, 0.004635634934629576],
             mask=[ True,  True,  True,  True,  True,  True,  True, False],
       fill_value=1e+20), 'param_classifier:sgd:l1_ratio': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True],
       fill_value=1e+20,
            dtype=float64), 'param_classifier:sgd:power_t': masked_array(data=[--, --, --, --, --, --, --, --],
             mask=[ True,  True,  True,  True,  True,  True,  True,  True],
       fill_value=1e+20,
            dtype=float64), '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.00015788887334393744],
             mask=[False, False, False, False, False,  True,  True, False],
       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],
       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],
       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],
       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],
       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.45954164 0.18010277 0.09814953 0.06334655]
The 2th pipeline has a explained variance of [0.44685232 0.17122959 0.1085501 ]
The 3th pipeline has a explained variance of [0.98080571 0.01684553]
The 4th 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 5th pipeline has a explained variance of [0.4595393  0.18012072 0.09809101 0.06332899]
The 6th pipeline has a explained variance of [0.76699224 0.17152095]
The 7th pipeline has a explained variance of [0.49503611 0.16649281 0.09111888 0.07213284 0.04865917 0.03208923
 0.01851537 0.01223987]

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

Gallery generated by Sphinx-Gallery