ComeçarComece de graça

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 se y vem de uma população que faz compras small ou large.

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

Ver curso

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.
  • 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")
Editar e executar o código