Implementation:Evidentlyai Evidently Legacy Classification Preset
| Knowledge Sources | |
|---|---|
| Domains | Machine Learning, Classification, Model Monitoring |
| Last Updated | 2026-02-14 12:00 GMT |
Overview
The ClassificationPreset class is a metric preset that bundles a comprehensive set of classification performance metrics for use in Evidently reports and test suites.
Description
ClassificationPreset extends MetricPreset and generates a curated list of classification-related metrics via its generate_metrics method. The preset always includes the following core metrics:
- ClassificationQualityMetric -- overall classification quality scores
- ClassificationClassBalance -- class distribution analysis
- ClassificationConfusionMatrix -- confusion matrix visualization
- ClassificationQualityByClass -- per-class quality metrics
When prediction probability columns are available in the data definition (i.e., prediction_probas is not None), the preset additionally includes:
- ClassificationClassSeparationPlot -- class separation visualization
- ClassificationProbDistribution -- probability distribution analysis
- ClassificationRocCurve -- ROC curve
- ClassificationPRCurve -- precision-recall curve
- ClassificationPRTable -- precision-recall table
Finally, ClassificationQualityByFeatureTable is always appended for feature-level quality analysis, using the optionally specified column list.
The preset supports configurable probas_threshold and k parameters that are passed through to the relevant metrics.
Usage
Use this preset when you want a one-line setup for comprehensive classification model performance monitoring. It is suitable for binary and multiclass classification tasks and automatically adapts to whether probability predictions are available.
Code Reference
Source Location
- Repository: Evidentlyai_Evidently
- File:
src/evidently/legacy/metric_preset/classification_performance.py
Signature
class ClassificationPreset(MetricPreset):
class Config:
type_alias = "evidently:metric_preset:ClassificationPreset"
columns: Optional[List[str]]
probas_threshold: Optional[float]
k: Optional[int]
def __init__(self, columns: Optional[List[str]] = None,
probas_threshold: Optional[float] = None,
k: Optional[int] = None): ...
def generate_metrics(self, data_definition: DataDefinition,
additional_data: Optional[Dict[str, Any]]) -> List[AnyMetric]: ...
Import
from evidently.legacy.metric_preset.classification_performance import ClassificationPreset
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| columns | Optional[List[str]] | No | List of columns for feature-level quality analysis. If None, all columns are used. |
| probas_threshold | Optional[float] | No | Probability threshold for converting predicted probabilities to class labels |
| k | Optional[int] | No | Number of top classes to consider (for top-k classification metrics) |
Outputs
| Name | Type | Description |
|---|---|---|
| metrics | List[AnyMetric] | A list of 5 to 10 classification metric instances depending on whether probability columns are present in the data definition |
Usage Examples
from evidently.legacy.metric_preset.classification_performance import ClassificationPreset
# Basic usage with defaults
preset = ClassificationPreset()
# With a custom probability threshold and specific columns
preset = ClassificationPreset(
columns=["feature_1", "feature_2", "feature_3"],
probas_threshold=0.7,
k=3
)