ПочатиПочніть безкоштовно

Відносна помилка

У цій вправі ви порівняєте відносну помилку з абсолютною. Для моделювання визначимо відносну помилку як

$$ rel = \frac{(y - pred)}{y} $$

тобто помилка вимірюється відносно істинного значення. Загальну відносну помилку моделі ви вимірюватимете за допомогою кореня середньоквадратичної відносної помилки:

$$ rmse_{rel} = \sqrt(\overline{rel^2}) $$

де \(\overline{rel^2}\) — це середнє значення для \(rel^2\).

Прикладовий (іграшковий) набір даних fdata уже завантажено. Він містить стовпці:

  • y: істинний вихід, який має передбачити певна модель; уявімо, що це сума грошей, яку клієнт витратить під час відвідування вашого магазину.
  • pred: передбачення моделі для y.
  • label: категоріальна змінна: чи походить y з групи, що здійснює small покупки, чи large.

Ви хочете з'ясувати, яка модель працює «краще»: та, що передбачає small покупки, чи та, що передбачає large.

Ця вправа є частиною курсу

Кероване навчання в R: регресія

Переглянути курс

Інструкції до вправи

  • Заповніть пропуски, щоб оглянути дані. Зверніть увагу, що великі покупки зазвичай приблизно у 100 разів більші за малі.
  • Заповніть пропуски, щоб створити стовпці з помилками:
    • Визначте залишок як y - pred.
    • Визначте відносну помилку як residual / y.
  • Заповніть пропуски, щоб обчислити та порівняти RMSE та відносну RMSE.
    • Як порівнюються абсолютні помилки? А відносні?
  • Огляньте графік передбачень проти фактичних значень.
    • На вашу думку, яка модель працює «краще»?

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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")
Редагувати та запускати код