Začněte nyníZačněte zdarma

Předpovědi sójového modelu na testovacích datech

V tomto cvičení aplikuješ sójové modely z předchozího cvičení (model.lin a model.gam, již načtené) na nová data: soybean_test.

Toto cvičení je součástí kurzu

Supervised Learning in R: Regression

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř sloupec soybean_test$pred.lin s předpověďmi z lineárního modelu model.lin.
  • Vytvoř sloupec soybean_test$pred.gam s předpověďmi z GAM modelu model.gam.
    • U GAM modelů vrací metoda predict() matici, proto ji pomocí as.numeric() převeď na vektor.
  • Doplň chybějící části a pomocí pivot_longer() převeď sloupce s předpověďmi do jediného hodnotového sloupce pred s klíčovým sloupcem modeltype. Výsledný dlouhý datový rámec pojmenuj soybean_long.
  • Vypočítej a porovnej RMSE obou modelů.
    • Který model si vede lépe?
  • Spusť kód a porovnej předpovědi každého modelu se skutečnými průměrnými hmotnostmi listů.
    • Bodový graf weight jako funkce Time.
    • Bodovo-čárové grafy předpovědí (pred) jako funkce Time.
    • Všimni si, že lineární model někdy předpovídá záporné hmotnosti! Dělá to i GAM model?

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# soybean_test is available
summary(soybean_test)

# Get predictions from linear model
soybean_test$pred.lin <- ___(___, newdata = ___)

# Get predictions from gam model
soybean_test$pred.gam <- ___(___(___, newdata = ___))

# Pivot the predictions into a "long" dataset
soybean_long <- soybean_test %>%
  pivot_longer(cols = c(___, ___), names_to = ___, values_to = ___)

# Calculate the rmse
soybean_long %>%
  mutate(residual = weight - pred) %>%     # residuals
  group_by(modeltype) %>%                  # group by modeltype
  summarize(rmse = ___(___(___))) # calculate the RMSE

# Compare the predictions against actual weights on the test data
soybean_long %>%
  ggplot(aes(x = Time)) +                          # the column for the x axis
  geom_point(aes(y = weight)) +                    # the y-column for the scatterplot
  geom_point(aes(y = pred, color = modeltype)) +   # the y-column for the point-and-line plot
  geom_line(aes(y = pred, color = modeltype, linetype = modeltype)) + # the y-column for the point-and-line plot
  scale_color_brewer(palette = "Dark2")
  
Upravit a spustit kód