.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/40_advanced/example_metrics.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_40_advanced_example_metrics.py: ======= Metrics ======= *Auto-sklearn* supports various built-in metrics, which can be found in the :ref:`metrics section in the API `. However, it is also possible to define your own metric and use it to fit and evaluate your model. The following examples show how to use built-in and self-defined metrics for a classification problem. .. GENERATED FROM PYTHON SOURCE LINES 13-24 .. code-block:: default import numpy as np import sklearn.model_selection import sklearn.datasets import sklearn.metrics import autosklearn.classification import autosklearn.metrics .. GENERATED FROM PYTHON SOURCE LINES 25-27 Custom Metrics ============== .. GENERATED FROM PYTHON SOURCE LINES 27-56 .. code-block:: default def accuracy(solution, prediction): # custom function defining accuracy return np.mean(solution == prediction) def error(solution, prediction): # custom function defining error return np.mean(solution != prediction) def accuracy_wk(solution, prediction, extra_argument): # custom function defining accuracy and accepting an additional argument assert extra_argument is None return np.mean(solution == prediction) def error_wk(solution, prediction, extra_argument): # custom function defining error and accepting an additional argument assert extra_argument is None return np.mean(solution != prediction) def metric_which_needs_x(solution, prediction, X_data, consider_col, val_threshold): # custom function defining accuracy assert X_data is not None rel_idx = X_data[:, consider_col] > val_threshold return np.mean(solution[rel_idx] == prediction[rel_idx]) .. GENERATED FROM PYTHON SOURCE LINES 57-59 Data Loading ============ .. GENERATED FROM PYTHON SOURCE LINES 59-65 .. code-block:: default 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 ) .. GENERATED FROM PYTHON SOURCE LINES 66-68 Print a list of available metrics ================================= .. GENERATED FROM PYTHON SOURCE LINES 68-75 .. code-block:: default print("Available CLASSIFICATION metrics autosklearn.metrics.*:") print("\t*" + "\n\t*".join(autosklearn.metrics.CLASSIFICATION_METRICS)) print("Available REGRESSION autosklearn.metrics.*:") print("\t*" + "\n\t*".join(autosklearn.metrics.REGRESSION_METRICS)) .. rst-class:: sphx-glr-script-out .. code-block:: none Available CLASSIFICATION metrics autosklearn.metrics.*: *accuracy *balanced_accuracy *roc_auc *average_precision *log_loss *precision_macro *precision_micro *precision_samples *precision_weighted *recall_macro *recall_micro *recall_samples *recall_weighted *f1_macro *f1_micro *f1_samples *f1_weighted Available REGRESSION autosklearn.metrics.*: *mean_absolute_error *mean_squared_error *root_mean_squared_error *mean_squared_log_error *median_absolute_error *r2 .. GENERATED FROM PYTHON SOURCE LINES 76-78 First example: Use predefined accuracy metric ============================================= .. GENERATED FROM PYTHON SOURCE LINES 78-93 .. code-block:: default print("#" * 80) print("Use predefined accuracy metric") scorer = autosklearn.metrics.accuracy cls = autosklearn.classification.AutoSklearnClassifier( time_left_for_this_task=60, seed=1, metric=scorer, ) cls.fit(X_train, y_train) predictions = cls.predict(X_test) score = scorer(y_test, predictions) print(f"Accuracy score {score:.3f} using {scorer.name}") .. rst-class:: sphx-glr-script-out .. code-block:: none ################################################################################ Use predefined accuracy metric Fitting to the training data: 0%| | 0/60 [00:00` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: example_metrics.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_