CrossValidationReport.metrics.summarize#

CrossValidationReport.metrics.summarize(*, data_source='test', X=None, y=None, scoring=None, scoring_names=None, scoring_kwargs=None, pos_label=<DEFAULT>, indicator_favorability=False, flat_index=False, aggregate=('mean', 'std'))[source]#

Report a set of metrics for our estimator.

Parameters:
data_source{“test”, “train”, “X_y”}, default=”test”

The data source to use.

  • “test” : use the test set provided when creating the report.

  • “train” : use the train set provided when creating the report.

  • “X_y” : use the train set provided when creating the report and the target variable.

Xarray-like of shape (n_samples, n_features), default=None

New data on which to compute the metric. By default, we use the validation set provided when creating the report.

yarray-like of shape (n_samples,), default=None

New target on which to compute the metric. By default, we use the target provided when creating the report.

scoringstr, callable, scorer or list of such instances, default=None

The metrics to report. The possible values (whether or not in a list) are:

  • if a string, either one of the built-in metrics or a scikit-learn scorer name. You can get the possible list of string using report.metrics.help() or sklearn.metrics.get_scorer_names() for the built-in metrics or the scikit-learn scorers, respectively.

  • if a callable, it should take as arguments y_true, y_pred as the two first arguments. Additional arguments can be passed as keyword arguments and will be forwarded with scoring_kwargs.

  • if the callable API is too restrictive (e.g. need to pass same parameter name with different values), you can use scikit-learn scorers as provided by sklearn.metrics.make_scorer().

scoring_namesstr, None or list of such instances, default=None

Used to overwrite the default scoring names in the report. If a list, it should be of the same length as the scoring parameter.

scoring_kwargsdict, default=None

The keyword arguments to pass to the scoring functions.

pos_labelint, float, bool, str or None default=_DEFAULT

The label to consider as the positive class when computing the metric. Use this parameter to override the positive class. By default, the positive class is set to the one provided when creating the report. If None, the metric is computed considering each class as a positive class.

indicator_favorabilitybool, default=False

Whether or not to add an indicator of the favorability of the metric as an extra column in the returned DataFrame.

flat_indexbool, default=False

Whether to flatten the MultiIndex columns. Flat index will always be lower case, do not include spaces and remove the hash symbol to ease indexing.

aggregate{“mean”, “std”}, list of such str or None, default=(“mean”, “std”)

Function to aggregate the scores across the cross-validation splits. None will return the scores for each split.

Returns:
MetricsSummaryDisplay

A display containing the statistics for the metrics.

Examples

>>> from sklearn.datasets import load_breast_cancer
>>> from sklearn.linear_model import LogisticRegression
>>> from skore import CrossValidationReport
>>> X, y = load_breast_cancer(return_X_y=True)
>>> classifier = LogisticRegression(max_iter=10_000)
>>> report = CrossValidationReport(classifier, X=X, y=y, cv_splitter=2)
>>> report.metrics.summarize(
...     scoring=["precision", "recall"],
...     pos_label=1,
...     indicator_favorability=True,
... ).frame()
          LogisticRegression           Favorability
                        mean       std
Metric
Precision           0.94...  0.02...         (↗︎)
Recall              0.96...  0.02...         (↗︎)