Calculate the Huber loss, a loss function used in robust regression. This
loss function is less sensitive to outliers than rmse()
. This function is
quadratic for small residual values and linear for large residual values.
huber_loss(data, ...) # S3 method for data.frame huber_loss(data, truth, estimate, delta = 1, na_rm = TRUE, ...) huber_loss_vec(truth, estimate, delta = 1, na_rm = TRUE, ...)
data | A |
---|---|
... | Not currently used. |
truth | The column identifier for the true results
(that is |
estimate | The column identifier for the predicted
results (that is also |
delta | A single |
na_rm | A |
A tibble
with columns .metric
, .estimator
,
and .estimate
and 1 row of values.
For grouped data frames, the number of rows returned will be the same as the number of groups.
For huber_loss_vec()
, a single numeric
value (or NA
).
Huber, P. (1964). Robust Estimation of a Location Parameter. Annals of Statistics, 53 (1), 73-101.
Other numeric metrics:
ccc()
,
huber_loss_pseudo()
,
iic()
,
mae()
,
mape()
,
mase()
,
mpe()
,
rmse()
,
rpd()
,
rpiq()
,
rsq_trad()
,
rsq()
,
smape()
Other accuracy metrics:
ccc()
,
huber_loss_pseudo()
,
iic()
,
mae()
,
mape()
,
mase()
,
mpe()
,
rmse()
,
smape()
James Blair
# Supply truth and predictions as bare column names huber_loss(solubility_test, solubility, prediction)#> # A tibble: 1 x 3 #> .metric .estimator .estimate #> <chr> <chr> <dbl> #> 1 huber_loss standard 0.234library(dplyr) set.seed(1234) size <- 100 times <- 10 # create 10 resamples solubility_resampled <- bind_rows( replicate( n = times, expr = sample_n(solubility_test, size, replace = TRUE), simplify = FALSE ), .id = "resample" ) # Compute the metric by group metric_results <- solubility_resampled %>% group_by(resample) %>% huber_loss(solubility, prediction) metric_results#> # A tibble: 10 x 4 #> resample .metric .estimator .estimate #> <chr> <chr> <chr> <dbl> #> 1 1 huber_loss standard 0.215 #> 2 10 huber_loss standard 0.212 #> 3 2 huber_loss standard 0.229 #> 4 3 huber_loss standard 0.197 #> 5 4 huber_loss standard 0.249 #> 6 5 huber_loss standard 0.208 #> 7 6 huber_loss standard 0.293 #> 8 7 huber_loss standard 0.268 #> 9 8 huber_loss standard 0.190 #> 10 9 huber_loss standard 0.218#> # A tibble: 1 x 1 #> avg_estimate #> <dbl> #> 1 0.228