|
1 | 1 | # yardstick (development version) |
2 | 2 |
|
3 | | -* `sedi()` was added to compute the Symmetric Extremal Dependence Index, a prevalence-independent skill metric for classification. SEDI remains reliable at extreme class imbalance (prevalence < 2.5%) where TSS and MCC degrade. Supports binary and multiclass (macro, macro-weighted, micro averaging via one-vs-all decomposition). Based on Ferro & Stephenson (2011) and recommended by Wunderlich et al. (2019) for species distribution models with rare events. |
| 3 | +# yardstick 1.4.0 |
4 | 4 |
|
5 | | -* `brier_class()` has gained the `event_level` argument. (#515) |
| 5 | +## Breaking Changes |
6 | 6 |
|
7 | | -* `gini_coef()` was added to compute the normalized Gini coefficient for regression, which measures ranking ability based on the Lorenz curve. This is useful for evaluating loss cost models and risk predictions. (#147) |
| 7 | +* The global option `yardstick.event_first` (deprecated in 0.0.7) now throws an error. Use the `event_level` argument of individual metric functions instead. (#632) |
8 | 8 |
|
9 | | -* `roc_dist()` was added to compute the Euclidean distance from (sensitivity, specificity) to the ideal point (1, 1) in ROC space. (#148) |
| 9 | +* `conf_mat()` now throws an error if anything is passed to `...` (deprecated in 1.0.0). This argument has had no effect since case weight support was added. (#632) |
10 | 10 |
|
11 | | -* `rmse_relative()` was added to compute relative root mean squared error, which normalizes RMSE by the range of the true values. (#527) |
| 11 | +* `roc_auc()`, `roc_aunp()`, `roc_aunu()`, and `roc_curve()` now throw an error if a non-empty list is passed to `options` (deprecated in 1.0.0). Use the pROC package directly if you need these features. (#632) |
12 | 12 |
|
13 | | -* `mse()` was added to compute the mean squared error. (#560) |
| 13 | +## Deprecations |
14 | 14 |
|
15 | | -* Added documentation pages for each metric type (e.g., `?class-metrics`, `?numeric-metrics`) that list all available metrics with their direction and range. (#547, #540) |
| 15 | +* `dots_to_estimate()`, `metric_summarizer()`, and `metric_vec_template()` (soft-deprecated in 1.2.0) now warn for all users. See the yardstick 1.2.0 release notes for recommended replacements. (#632) |
16 | 16 |
|
17 | | -* For metrics with alternate argument values that will be used in a metric set, the documentation pages emphasize doing this via `metric_tweak()` #626 |
| 17 | +## New Metrics |
18 | 18 |
|
19 | | -* `get_metrics()` was added to return a `metric_set()` containing all metrics of a specified type. (#534) |
| 19 | +* `gini_coef()` computes the normalized Gini coefficient for regression, which measures ranking ability based on the Lorenz curve. (#147) |
20 | 20 |
|
21 | | -* All class metrics and probability metrics now include mathematical formulas in their documentation. (#605) |
| 21 | +* `mse()` computes the mean squared error. (#560) |
22 | 22 |
|
23 | | -* `mpe()` documentation now includes the formula and clarifies the interpretation of positive and negative values. (#345) |
| 23 | +* `rmse_relative()` computes the relative root mean squared error, normalizing RMSE by the range of the true values. (#527) |
24 | 24 |
|
25 | | -* `classification_cost()` documentation now correctly refers to the `cost` column of the data.frame that can be passed to the `costs` arguemtn. (#343) |
| 25 | +* `fall_out()` and `miss_rate()` compute the false positive rate and false negative rate respectively. (#336) |
26 | 26 |
|
27 | | -* `new_metric()` and related functions gain an optional `range` argument to store the valid output range of a metric. This is a developer-facing change. (#572) |
| 27 | +* `markedness()` computes the markedness metric (PPV + NPV - 1), the predictive power analog of `j_index()`. (#27) |
28 | 28 |
|
29 | | -* `markedness()` calculates the markedness metric (PPV + NPV - 1), which is the predictive power analog of informedness/j_index (#27). |
| 29 | +* `roc_dist()` computes the Euclidean distance from the (sensitivity, specificity) point to the ideal point (1, 1) in ROC space. (#148) |
30 | 30 |
|
31 | | -* `metric_set()` now provides a more informative error message when `estimate` is not explicitly named for class/prob or survival metric sets. (#504) |
| 31 | +* `sedi()` computes the Symmetric Extremal Dependence Index, a prevalence-independent skill metric for binary classification that remains reliable at extreme class imbalance. (#630) |
32 | 32 |
|
33 | | -* Added `thresholds` argument to `roc_curve()` to allow for custom thresholds to calculate curves for. (#488) |
| 33 | +* `ranked_prob_score()` computes the ranked probability score for ordinal classification data. (#524) |
34 | 34 |
|
35 | | -* Speed up survival metrics performance. Some of this performance comes from slightly less strict input checking. (#576) |
| 35 | +* `weighted_interval_score()` is a new quantile metric. (#569) |
| 36 | + |
| 37 | +## Improvements |
36 | 38 |
|
37 | | -* All metrics now have documented ranges of possible values in addition to what direction is the best. (#572) |
| 39 | +* Added checks to all metrics for the `na_rm` argument. (#349) |
38 | 40 |
|
39 | | -* The ranked probability score for ordinal classification data was added with `ranked_prob_score()`. (#524) |
| 41 | +* Added improved argument checking for metrics with additional arguments. (#519) |
40 | 42 |
|
41 | | -* Fixed bug where `brier_class()` returns NaN with extreme value case weights. (#614) |
| 43 | +* Added documentation pages for each metric type (e.g., `?class-metrics`, `?numeric-metrics`) listing all available metrics with their direction and range. (#547, #540) |
42 | 44 |
|
43 | | -* `poisson_log_loss()` has been enhanced to handle 0 valued estimates, no longer returning `Inf` or `NaN`. (#513) |
| 45 | +* All class metrics and probability metrics now include mathematical formulas in their documentation. (#605) |
44 | 46 |
|
45 | | -* Fixed bug where ranked probability metrics didn't work in combination with other classification metrics in `metric_set()`. (#539) |
| 47 | +* All metrics now document their valid range of output values. (#572) |
46 | 48 |
|
47 | | -* Added infrastructure for survival metrics on the linear predictor. (#551) |
| 49 | +* Documentation pages for metrics with alternate argument values now emphasize using `metric_tweak()` when building metric sets. (#626) |
48 | 50 |
|
49 | | -* Added infrastructure for quantile metrics. (#569) |
| 51 | +* Survival metrics performance has been improved. (#576) |
50 | 52 |
|
51 | | -* Added quantile metric `weighted_interval_score()`. (#569) |
| 53 | +* `brier_class()` has gained the `event_level` argument. (#515) |
52 | 54 |
|
53 | | -* Added checks to all metrics for `na_rm` argument. (#349) |
| 55 | +* `get_metrics()` has been added to return a `metric_set()` containing all metrics of a specified type. (#534) |
54 | 56 |
|
55 | | -* Removed crayon as a suggested package. (#574) |
| 57 | +* `metric_set()` now provides a more informative error message when `estimate` is not explicitly named for class/prob or survival metric sets. (#504) |
56 | 58 |
|
57 | | -* Added improved argument checking for metrics with additional arguments. (#519) |
| 59 | +* `roc_curve()` has gained a `thresholds` argument for specifying custom thresholds at which the curve is evaluated. (#488) |
| 60 | + |
| 61 | +## Bug Fixes |
| 62 | + |
| 63 | +* `brier_class()` no longer returns `NaN` with extreme value case weights. (#614) |
| 64 | + |
| 65 | +* `classification_cost()` documentation now correctly refers to the `cost` column of the costs data frame. (#343) |
| 66 | + |
| 67 | +* `mpe()` documentation now includes the formula and clarifies the interpretation of positive and negative values. (#345) |
| 68 | + |
| 69 | +* `poisson_log_loss()` now handles 0-valued estimates without returning `Inf` or `NaN`. (#513) |
| 70 | + |
| 71 | +* Fixed a bug where ranked probability metrics didn't work in combination with other classification metrics in `metric_set()`. (#539) |
58 | 72 |
|
59 | 73 | * Fixed documentation to show equations correctly. (#541) |
60 | 74 |
|
61 | | -* `fall_out()` and `miss_rate()` have been added to compute the false positive rate and false negative rate respectively (#336). |
| 75 | +## Developer |
| 76 | + |
| 77 | +* Added infrastructure for quantile metrics. (#569) |
| 78 | + |
| 79 | +* Added infrastructure for survival metrics on the linear predictor. (#551) |
| 80 | + |
| 81 | +* `new_metric()` and related functions gain an optional `range` argument to store the valid output range of a metric. (#572) |
| 82 | + |
| 83 | +* Removed crayon as a suggested package. (#574) |
62 | 84 |
|
63 | 85 | # yardstick 1.3.2 |
64 | 86 |
|
|
0 commit comments