View source: R/num-huber_loss_pseudo.R
| huber_loss_pseudo | R Documentation |
Calculate the Pseudo-Huber Loss, a smooth approximation of huber_loss().
Like huber_loss(), this is less sensitive to outliers than rmse().
huber_loss_pseudo(data, ...)
## S3 method for class 'data.frame'
huber_loss_pseudo(
data,
truth,
estimate,
delta = 1,
na_rm = TRUE,
case_weights = NULL,
...
)
huber_loss_pseudo_vec(
truth,
estimate,
delta = 1,
na_rm = TRUE,
case_weights = NULL,
...
)
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 |
case_weights |
The optional column identifier for case weights. This
should be an unquoted column name that evaluates to a numeric column in
|
Pseudo-Huber loss is a metric that should be minimized. The output ranges from 0 to Inf, with 0 indicating perfect predictions.
The formula for Pseudo-Huber loss is:
L_\delta = \frac{1}{n} \sum_{i=1}^{n} \delta^2 \left( \sqrt{1 + \left(\frac{\text{truth}_i - \text{estimate}_i}{\delta}\right)^2} - 1 \right)
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_pseudo_vec(), a single numeric value (or NA).
James Blair
Huber, P. (1964). Robust Estimation of a Location Parameter. Annals of Statistics, 53 (1), 73-101.
Hartley, Richard (2004). Multiple View Geometry in Computer Vision. (Second Edition). Page 619.
All numeric metrics
Other numeric metrics:
ccc(),
gini_coef(),
huber_loss(),
iic(),
mae(),
mape(),
mase(),
mpe(),
msd(),
mse(),
poisson_log_loss(),
rmse(),
rmse_relative(),
rpd(),
rpiq(),
rsq(),
rsq_trad(),
smape()
Other accuracy metrics:
ccc(),
huber_loss(),
iic(),
mae(),
mape(),
mase(),
mpe(),
msd(),
mse(),
poisson_log_loss(),
rmse(),
rmse_relative(),
smape()
# Supply truth and predictions as bare column names
huber_loss_pseudo(solubility_test, solubility, prediction)
library(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_pseudo(solubility, prediction)
metric_results
# Resampled mean estimate
metric_results |>
summarise(avg_estimate = mean(.estimate))
# Using a different value of 'delta'... if you are adding the metric to a
# metric set, you can create a new metric function with the updated argument
# value:
huber_loss_pseudo_2 <- metric_tweak("huber_loss_pseudo_2", huber_loss_pseudo, delta = 2)
multi_metrics <- metric_set(huber_loss_pseudo, huber_loss_pseudo_2)
multi_metrics(solubility_test, solubility, prediction)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.