Note
Click here to download the full example code or to run this example in your browser via Binder
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")
Fitting to the training data: 0%| | 0/30 [00:00<?, ?it/s, The total time budget for this task is 0:00:30]
Fitting to the training data: 3%|3 | 1/30 [00:01<00:29, 1.00s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 7%|6 | 2/30 [00:02<00:28, 1.00s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 10%|# | 3/30 [00:03<00:27, 1.00s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 13%|#3 | 4/30 [00:04<00:26, 1.00s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 17%|#6 | 5/30 [00:05<00:25, 1.00s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 20%|## | 6/30 [00:06<00:24, 1.00s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 23%|##3 | 7/30 [00:07<00:23, 1.00s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 27%|##6 | 8/30 [00:08<00:22, 1.00s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 30%|### | 9/30 [00:09<00:21, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 33%|###3 | 10/30 [00:10<00:20, 1.02s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 37%|###6 | 11/30 [00:11<00:19, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 40%|#### | 12/30 [00:12<00:18, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 43%|####3 | 13/30 [00:13<00:17, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 47%|####6 | 14/30 [00:14<00:16, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 50%|##### | 15/30 [00:15<00:15, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 53%|#####3 | 16/30 [00:16<00:14, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 57%|#####6 | 17/30 [00:17<00:13, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 60%|###### | 18/30 [00:18<00:12, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 63%|######3 | 19/30 [00:19<00:11, 1.01s/it, The total time budget for this task is 0:00:30]
Fitting to the training data: 100%|##########| 30/30 [00:19<00:00, 1.57it/s, The total time budget for this task is 0:00:30]
AutoSklearnClassifier(ensemble_class=<class 'autosklearn.ensembles.ensemble_selection.EnsembleSelection'>,
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)))
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)
{ 2: { 'balancing': Balancing(random_state=1),
'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7f2afcd2ffa0>,
'cost': 0.07801418439716312,
'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7f2af5557a60>,
'ensemble_weight': 0.12,
'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7f2afcd2f370>,
'model_id': 2,
'rank': 4,
'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 0x7f2af4dc8640>,
'cost': 0.07092198581560283,
'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7f2af76a2be0>,
'ensemble_weight': 0.16,
'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7f2af4dc8130>,
'model_id': 3,
'rank': 3,
'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 0x7f2aee01ad00>,
'cost': 0.028368794326241176,
'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7f2af03d0a60>,
'ensemble_weight': 0.06,
'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7f2af6bf11c0>,
'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 0x7f2af7258c70>,
'cost': 0.1063829787234043,
'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7f2af732e6d0>,
'ensemble_weight': 0.12,
'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7f2af7258790>,
'model_id': 5,
'rank': 6,
'sklearn_classifier': KNeighborsClassifier(n_neighbors=4, weights='distance')},
6: { 'balancing': Balancing(random_state=1),
'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7f2af4274f10>,
'cost': 0.11347517730496459,
'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7f2af4e09af0>,
'ensemble_weight': 0.12,
'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7f2af4274790>,
'model_id': 6,
'rank': 8,
'sklearn_classifier': SVC(C=100.5905006626969, cache_size=1816.1770833333333,
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 0x7f2af53368b0>,
'cost': 0.1063829787234043,
'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7f2af6e91a00>,
'ensemble_weight': 0.08,
'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7f2af5336580>,
'model_id': 7,
'rank': 7,
'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),
'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7f2af6ab0850>,
'cost': 0.028368794326241176,
'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7f2af41979a0>,
'ensemble_weight': 0.28,
'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7f2af6ab02e0>,
'model_id': 8,
'rank': 2,
'sklearn_classifier': KNeighborsClassifier(n_neighbors=10, p=1)},
9: { 'balancing': Balancing(random_state=1, strategy='weighting'),
'classifier': <autosklearn.pipeline.components.classification.ClassifierChoice object at 0x7f2af45bbdc0>,
'cost': 0.08510638297872342,
'data_preprocessor': <autosklearn.pipeline.components.data_preprocessing.DataPreprocessorChoice object at 0x7f2af4b59910>,
'ensemble_weight': 0.06,
'feature_preprocessor': <autosklearn.pipeline.components.feature_preprocessing.FeaturePreprocessorChoice object at 0x7f2af45bb1c0>,
'model_id': 9,
'rank': 5,
'sklearn_classifier': DecisionTreeClassifier(class_weight='balanced', criterion='entropy',
max_depth=1, min_samples_leaf=12, min_samples_split=13,
random_state=1)}}
Report statistics about the search¶
Print statistics about the auto-sklearn run such as number of iterations, number of models failed with a time out etc.
print(automl.sprint_statistics())
auto-sklearn results:
Dataset name: breast_cancer
Metric: accuracy
Best validation score: 0.971631
Number of target algorithm runs: 8
Number of successful target algorithm runs: 8
Number of crashed target algorithm runs: 0
Number of target algorithms that exceeded the time limit: 0
Number of target algorithms that exceeded the memory limit: 0
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_)
<smac.runhistory.runhistory.RunHistory object at 0x7f2af4dd4df0>
Runs are stored inside an OrderedDict
called data
:
print(len(automl.automl_.runhistory_.data))
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])
#########
RunKey(config_id=1, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.07801418439716312, time=2.084700107574463, status=<StatusType.SUCCESS: 1>, starttime=1669293987.7687888, endtime=1669293989.8773837, additional_info={'duration': 1.977937936782837, '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.864558219909668, status=<StatusType.SUCCESS: 1>, starttime=1669293989.9380379, endtime=1669293991.827219, additional_info={'duration': 1.7690739631652832, '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.6764445304870605, status=<StatusType.SUCCESS: 1>, starttime=1669293991.9542592, endtime=1669293993.6577768, additional_info={'duration': 1.6023883819580078, '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.8044607639312744, status=<StatusType.SUCCESS: 1>, starttime=1669293993.8067417, endtime=1669293994.6348577, additional_info={'duration': 0.7263660430908203, '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.6652591228485107, status=<StatusType.SUCCESS: 1>, starttime=1669293994.7952342, endtime=1669293995.4854486, additional_info={'duration': 0.5973846912384033, '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.1063829787234043, time=0.8129374980926514, status=<StatusType.SUCCESS: 1>, starttime=1669293997.7581677, endtime=1669293998.5956388, additional_info={'duration': 0.7320952415466309, 'num_run': 7, 'train_loss': 0.1473684210526316, 'configuration_origin': 'Random Search (sorted)'})
#########
RunKey(config_id=7, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.028368794326241176, time=0.8261840343475342, status=<StatusType.SUCCESS: 1>, starttime=1669294000.8262668, endtime=1669294001.6754014, additional_info={'duration': 0.7499759197235107, 'num_run': 8, 'train_loss': 0.03157894736842104, 'configuration_origin': 'Random Search (sorted)'})
#########
RunKey(config_id=8, instance_id='{"task_id": "breast_cancer"}', seed=0, budget=0.0)
RunValue(cost=0.08510638297872342, time=0.7815749645233154, status=<StatusType.SUCCESS: 1>, starttime=1669294001.9135206, endtime=1669294002.7181022, additional_info={'duration': 0.7149951457977295, 'num_run': 9, 'train_loss': 0.07017543859649122, '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=1669294005.4592407, endtime=1669294005.459241, 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)
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])
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: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)
Cost: 0.07801418439716312
Time: 2.084700107574463
Status: StatusType.SUCCESS
Additional information: {'duration': 1.977937936782837, 'num_run': 2, 'train_loss': 0.0, 'configuration_origin': 'Initial design'}
Start time: 1669293987.7687888
End time 1669293989.8773837
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]],
)
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: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_)
{'mean_test_score': array([0.92198582, 0.92907801, 0.97163121, 0.89361702, 0.88652482,
0.89361702, 0.97163121, 0.91489362]), 'rank_test_scores': array([4, 3, 1, 6, 8, 6, 1, 5]), 'mean_fit_time': array([2.08470011, 1.86455822, 1.67644453, 0.80446076, 0.66525912,
0.8129375 , 0.82618403, 0.78157496]), '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: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'}, {'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: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'}, {'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: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: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: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'}, {'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: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}, {'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:numerical_transformer:imputation:strategy': 'median', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'robust_scaler', 'feature_preprocessor:pca:keep_variance': 0.5306607720040878, 'feature_preprocessor:pca:whiten': 'False', 'data_preprocessor:feature_type:numerical_transformer:rescaling:robust_scaler:q_max': 0.9866104280704078, 'data_preprocessor:feature_type:numerical_transformer:rescaling:robust_scaler:q_min': 0.20576464288464985}, {'balancing:strategy': 'none', 'classifier:__choice__': 'k_nearest_neighbors', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:k_nearest_neighbors:n_neighbors': 10, 'classifier:k_nearest_neighbors:p': 1, 'classifier:k_nearest_neighbors:weights': 'uniform', 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'median', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'quantile_transformer', 'feature_preprocessor:pca:keep_variance': 0.9923006586696794, 'feature_preprocessor:pca:whiten': 'False', 'data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:n_quantiles': 1866, 'data_preprocessor:feature_type:numerical_transformer:rescaling:quantile_transformer:output_distribution': 'normal'}, {'balancing:strategy': 'weighting', 'classifier:__choice__': 'decision_tree', 'data_preprocessor:__choice__': 'feature_type', 'feature_preprocessor:__choice__': 'pca', 'classifier:decision_tree:criterion': 'entropy', 'classifier:decision_tree:max_depth_factor': 0.07400222370559417, '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': 12, 'classifier:decision_tree:min_samples_split': 13, 'classifier:decision_tree:min_weight_fraction_leaf': 0.0, 'data_preprocessor:feature_type:numerical_transformer:imputation:strategy': 'most_frequent', 'data_preprocessor:feature_type:numerical_transformer:rescaling:__choice__': 'standardize', 'feature_preprocessor:pca:keep_variance': 0.9710934401815425, 'feature_preprocessor:pca:whiten': 'True'}], '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', 'none', 'weighting'],
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',
'k_nearest_neighbors', 'decision_tree'],
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=[--, --, --, --, --, --, --, 'entropy'],
mask=[ True, True, True, True, True, True, True, False],
fill_value='N/A',
dtype='<U32'), 'param_classifier:decision_tree:max_depth_factor': masked_array(data=[--, --, --, --, --, --, --, 0.07400222370559417],
mask=[ True, True, True, True, True, True, True, False],
fill_value=1e+20), 'param_classifier:decision_tree:max_features': masked_array(data=[--, --, --, --, --, --, --, 1.0],
mask=[ True, True, True, True, True, True, True, False],
fill_value=1e+20), 'param_classifier:decision_tree:max_leaf_nodes': masked_array(data=[--, --, --, --, --, --, --, 'None'],
mask=[ True, True, True, True, True, True, True, False],
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, True, False],
fill_value=1e+20), 'param_classifier:decision_tree:min_samples_leaf': masked_array(data=[--, --, --, --, --, --, --, 12.0],
mask=[ True, True, True, True, True, True, True, False],
fill_value=1e+20), 'param_classifier:decision_tree:min_samples_split': masked_array(data=[--, --, --, --, --, --, --, 13.0],
mask=[ True, True, True, True, True, True, True, False],
fill_value=1e+20), 'param_classifier:decision_tree:min_weight_fraction_leaf': masked_array(data=[--, --, --, --, --, --, --, 0.0],
mask=[ True, True, True, True, True, True, True, False],
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, --, --, 10.0, --],
mask=[ True, True, True, False, True, True, False, True],
fill_value=1e+20), 'param_classifier:k_nearest_neighbors:p': masked_array(data=[--, --, --, 2.0, --, --, 1.0, --],
mask=[ True, True, True, False, True, True, False, True],
fill_value=1e+20), 'param_classifier:k_nearest_neighbors:weights': masked_array(data=[--, --, --, 'distance', --, --, 'uniform', --],
mask=[ True, True, True, False, True, True, False, 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=[--, --, --, --, --, --, --, --],
mask=[ True, True, True, True, True, True, True, True],
fill_value=1e+20,
dtype=float64), 'param_classifier:sgd:average': masked_array(data=[--, --, --, --, --, --, --, --],
mask=[ True, True, True, True, True, True, True, True],
fill_value=1e+20,
dtype=float64), 'param_classifier:sgd:fit_intercept': masked_array(data=[--, --, --, --, --, --, --, --],
mask=[ True, True, True, True, True, True, True, True],
fill_value=1e+20,
dtype=float64), 'param_classifier:sgd:learning_rate': masked_array(data=[--, --, --, --, --, --, --, --],
mask=[ True, True, True, True, True, True, True, True],
fill_value=1e+20,
dtype=float64), 'param_classifier:sgd:loss': masked_array(data=[--, --, --, --, --, --, --, --],
mask=[ True, True, True, True, True, True, True, True],
fill_value=1e+20,
dtype=float64), 'param_classifier:sgd:penalty': masked_array(data=[--, --, --, --, --, --, --, --],
mask=[ True, True, True, True, True, True, True, True],
fill_value=1e+20,
dtype=float64), 'param_classifier:sgd:tol': 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:imputation:strategy': masked_array(data=['mean', 'mean', 'most_frequent', 'mean', 'mean',
'median', 'median', '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', 'robust_scaler',
'quantile_transformer', 'standardize'],
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.5306607720040878, 0.9923006586696794,
0.9710934401815425],
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',
'False', '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=[--, --, --, --, --, --, --, --],
mask=[ True, True, True, True, True, True, True, True],
fill_value=1e+20,
dtype=float64), 'param_classifier:sgd:eta0': masked_array(data=[--, --, --, --, --, --, --, --],
mask=[ True, True, True, True, True, True, True, True],
fill_value=1e+20,
dtype=float64), '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:numerical_transformer:rescaling:quantile_transformer:n_quantiles': masked_array(data=[--, --, 180.0, --, --, --, 1866.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', --, --, --, 'normal', --],
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=[--, --, --, --, --, 0.9866104280704078, --, --],
mask=[ True, True, True, True, True, False, True, True],
fill_value=1e+20), 'param_data_preprocessor:feature_type:numerical_transformer:rescaling:robust_scaler:q_min': masked_array(data=[--, --, --, --, --, 0.20576464288464985, --, --],
mask=[ True, True, True, True, True, False, True, True],
fill_value=1e+20)}
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_,
)
)
The 0th pipeline has a explained variance of [0.46038401 0.16124884 0.09747816 0.06923404 0.06142479 0.03312917
0.03182802 0.01555463 0.01348582 0.00965531 0.00870982 0.007397
0.00547082 0.00443245 0.00396559 0.00313575 0.0022883 0.00195796
0.00156348]
The 1th pipeline has a explained variance of [0.98080571 0.01684553]
The 2th 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 3th pipeline has a explained variance of [0.76699224 0.17152095]
The 4th pipeline has a explained variance of [0.49503611 0.16649281 0.09111888 0.07213284 0.04865917 0.03208923
0.01851537 0.01223987]
The 5th pipeline has a explained variance of [0.72985767]
The 6th pipeline has a explained variance of [0.45954164 0.18010277 0.09814953 0.06334655]
The 7th pipeline has a explained variance of [0.43295688 0.1790573 0.11173757 0.06807243 0.05946115 0.03706299
0.0238431 0.01493261 0.01376414 0.01137049 0.01037373 0.00874117]
Total running time of the script: ( 0 minutes 26.781 seconds)