Erro relativo
Neste exercício, você vai comparar o erro relativo com o erro absoluto. Para fins de modelagem, vamos definir o erro relativo como
$$ rel = \frac{(y - pred)}{y} $$
ou seja, o erro é relativo ao valor verdadeiro. Você vai medir o erro relativo geral de um modelo usando a raiz do erro quadrático médio relativo:
$$ rmse_{rel} = \sqrt(\overline{rel^2}) $$
em que \(\overline{rel^2}\) é a média de \(rel^2\).
O conjunto de dados de exemplo (toy) fdata já foi carregado. Ele inclui as colunas:
y: a saída verdadeira a ser prevista por algum modelo; imagine que seja o valor que um cliente vai gastar em uma visita à sua loja.pred: as previsões de um modelo que prevêy.label: categórica: indica seyvem de uma população que faz comprassmalloularge.
Você quer saber qual modelo é "melhor": o que prevê as compras small ou o que prevê as large.
Este exercício faz parte do curso
Aprendizado Supervisionado em R: Regressão
Instruções do exercício
- Preencha as lacunas para examinar os dados. Perceba que compras grandes tendem a ser cerca de 100 vezes maiores que as pequenas.
- Preencha as lacunas para criar as colunas de erro:
- Defina o resíduo como
y - pred. - Defina o erro relativo como
residual / y.
- Defina o resíduo como
- Preencha as lacunas para calcular e comparar o RMSE e o RMSE relativo.
- Como os erros absolutos se comparam? E os erros relativos?
- Examine o gráfico de previsões versus resultado.
- Na sua opinião, qual modelo é "melhor"?
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# fdata is available
summary(fdata)
# Examine the data: generate the summaries for the groups large and small:
fdata %>%
group_by(label) %>% # group by small/large purchases
summarize(min = ___, # min of y
mean = ___, # mean of y
max = ___) # max of y
# Fill in the blanks to add error columns
fdata2 <- fdata %>%
group_by(label) %>% # group by label
mutate(residual = ___, # Residual
relerr = ___) # Relative error
# Compare the rmse and rmse.rel of the large and small groups:
fdata2 %>%
group_by(label) %>%
summarize(rmse = ___, # RMSE
rmse.rel = ___) # Root mean squared relative error
# Plot the predictions for both groups of purchases
ggplot(fdata2, aes(x = pred, y = y, color = label)) +
geom_point() +
geom_abline() +
facet_wrap(~ label, ncol = 1, scales = "free") +
ggtitle("Outcome vs prediction")