BaşlayınÜcretsiz başlayın

Soya fasulyesi modeliyle test verisinde tahmin yap

Bu egzersizde, önceki egzersizdeki soya fasulyesi modellerini (model.lin ve model.gam, önceden yüklendi) yeni veriye: soybean_test uygulayacaksın.

Bu egzersiz, kursun bir parçasıdır

R'de Supervised Learning: Regresyon

Kursa Göz Atın

Egzersiz talimatları

  • Doğrusal model model.lin tahminleriyle soybean_test$pred.lin sütununu oluştur.
  • GAM modeli model.gam tahminleriyle soybean_test$pred.gam sütununu oluştur.
    • GAM modellerinde, predict() metodu bir matris döndürür; bu matrisi bir vektöre çevirmek için as.numeric() kullan.
  • Tahmin sütunlarını tek bir değer sütununda pred ve anahtar sütununda modeltype olacak şekilde pivot_longer() ile uzun formata çevirmen için boşlukları doldur. Uzun veri çerçevesinin adı soybean_long olsun.
  • Her iki modelin RMSE değerlerini hesapla ve karşılaştır.
    • Hangisi daha iyi?
  • Her modelin tahminlerini gerçek ortalama yaprak ağırlıklarıyla karşılaştırmak için kodu çalıştır.
    • Time fonksiyonu olarak weight için bir saçılım grafiği.
    • Time fonksiyonu olarak tahminlerin (pred) nokta-ve-çizgi grafikleri.
    • Doğrusal modelin bazen negatif ağırlıklar tahmin ettiğine dikkat et! Peki ya gam modeli?

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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")
  
Kodu Düzenle ve Çalıştır