Metrics
This page documents the metrics module.
ordboost.metrics
Evaluation metrics for discrete ordinal and continuous probabilistic forecasts.
crps_score(y_true, y_dist, sample_weight=None)
Compute the Continuous Ranked Probability Score (CRPS).
For discrete distributions, evaluates squared cumulative probability error across threshold classes. For continuous predictive distributions, evaluates integrated squared distance between predicted CDF F(y) and the empirical step function I(y_true <= y) via trapezoidal integration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y_true
|
ArrayLike of shape (n_samples,)
|
True physical target values. |
required |
y_dist
|
PredictiveDistribution
|
Predicted probability distribution object (discrete or continuous). |
required |
sample_weight
|
ArrayLike of shape (n_samples,)
|
Sample weights for weighted mean computation. |
None
|
Returns:
| Type | Description |
|---|---|
float
|
The average CRPS across all samples (lower is better). |
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
Source code in ordboost/metrics.py
interval_coverage_rate(y_true, dist, alpha=0.1, sample_weight=None)
Compute empirical coverage rate for a central prediction interval.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y_true
|
ArrayLike of shape (n_samples,)
|
True continuous target values. |
required |
dist
|
ContinuousPredictiveDistribution
|
Predicted continuous distributions. |
required |
alpha
|
float
|
Tail significance level (e.g., alpha=0.10 specifies a 90% interval). |
0.10
|
sample_weight
|
ArrayLike of shape (n_samples,)
|
Sample weights for weighted coverage computation. |
None
|
Returns:
| Type | Description |
|---|---|
float
|
Proportion of true observations lying within predicted interval bounds. |
Source code in ordboost/metrics.py
pinball_loss(y_true, y_pred_q, q, sample_weight=None)
Compute the pinball (quantile) loss for a specific quantile level q.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y_true
|
ArrayLike of shape (n_samples,)
|
True physical target labels. |
required |
y_pred_q
|
ArrayLike of shape (n_samples,)
|
Predicted target values at quantile level |
required |
q
|
float
|
Target quantile level in the range (0.0, 1.0). |
required |
sample_weight
|
ArrayLike of shape (n_samples,)
|
Sample weights for weighted mean computation. |
None
|
Returns:
| Type | Description |
|---|---|
float
|
The average pinball loss across samples. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
Source code in ordboost/metrics.py
winkler_score(y_true, dist, alpha=0.1, sample_weight=None)
Compute mean Winkler score for prediction intervals at significance level alpha.
Penalizes interval width and asymmetrically penalizes targets that fall outside the predicted lower and upper bounds.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y_true
|
ArrayLike of shape (n_samples,)
|
True continuous target values. |
required |
dist
|
ContinuousPredictiveDistribution
|
Predicted continuous distributions. |
required |
alpha
|
float
|
Tail significance level in range (0.0, 1.0). |
0.10
|
sample_weight
|
ArrayLike of shape (n_samples,)
|
Sample weights for weighted mean computation. |
None
|
Returns:
| Type | Description |
|---|---|
float
|
Mean Winkler score across samples (lower is better). |