Implementation:Scikit learn Scikit learn RegressionMetrics
| Knowledge Sources | |
|---|---|
| Domains | Machine Learning, Model Evaluation |
| Last Updated | 2026-02-08 15:00 GMT |
Overview
Concrete tool for computing regression performance metrics provided by scikit-learn.
Description
The regression metrics module provides a comprehensive collection of functions for evaluating regression model performance. It includes standard error metrics (MAE, MSE, RMSE), percentage-based metrics (MAPE), robust metrics (median absolute error), explained variance and R-squared scores, and specialized deviance-based metrics for generalized linear models (Tweedie, Poisson, Gamma). Functions named *_score return values to maximize, while those named *_error or *_loss return values to minimize.
Usage
Use these metrics when evaluating the quality of continuous-valued predictions from regression models, comparing regression model performance, or when performing hyperparameter tuning with regression objectives.
Code Reference
Source Location
- Repository: scikit-learn
- File: sklearn/metrics/_regression.py
Signature
def mean_absolute_error(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average")
def mean_squared_error(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average")
def root_mean_squared_error(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average")
def mean_squared_log_error(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average")
def root_mean_squared_log_error(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average")
def median_absolute_error(y_true, y_pred, *, multioutput="uniform_average", sample_weight=None)
def mean_absolute_percentage_error(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average")
def mean_pinball_loss(y_true, y_pred, *, sample_weight=None, alpha=0.5, multioutput="uniform_average")
def r2_score(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average", force_finite=True)
def max_error(y_true, y_pred)
def explained_variance_score(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average", force_finite=True)
def mean_tweedie_deviance(y_true, y_pred, *, sample_weight=None, power=0)
def mean_poisson_deviance(y_true, y_pred, *, sample_weight=None)
def mean_gamma_deviance(y_true, y_pred, *, sample_weight=None)
def d2_tweedie_score(y_true, y_pred, *, sample_weight=None, power=0)
def d2_pinball_score(y_true, y_pred, *, sample_weight=None, alpha=0.5, multioutput="uniform_average")
def d2_absolute_error_score(y_true, y_pred, *, sample_weight=None, multioutput="uniform_average")
Import
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
from sklearn.metrics import root_mean_squared_error, median_absolute_error
from sklearn.metrics import mean_absolute_percentage_error, max_error
from sklearn.metrics import mean_tweedie_deviance, d2_tweedie_score
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| y_true | array-like of shape (n_samples,) or (n_samples, n_outputs) | Yes | Ground truth (correct) target values |
| y_pred | array-like of shape (n_samples,) or (n_samples, n_outputs) | Yes | Estimated target values |
| sample_weight | array-like of shape (n_samples,) | No | Sample weights |
| multioutput | str or array-like | No | Aggregation strategy for multi-output: raw_values, uniform_average, or variance_weighted |
| power | float | No | Tweedie power parameter for deviance metrics (0=Gaussian, 1=Poisson, 2=Gamma) |
| alpha | float | No | Quantile level for pinball loss, between 0 and 1 |
| force_finite | bool | No | Whether to force finite output values in edge cases (default True) |
Outputs
| Name | Type | Description |
|---|---|---|
| score/error | float or ndarray | Scalar metric value or array of per-output values when multioutput=raw_values |
Usage Examples
Basic Usage
from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
mse = mean_squared_error(y_true, y_pred)
print(f"MSE: {mse:.3f}")
mae = mean_absolute_error(y_true, y_pred)
print(f"MAE: {mae:.3f}")
r2 = r2_score(y_true, y_pred)
print(f"R2: {r2:.3f}")