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
Egzersiz talimatları
- Doğrusal model
model.lintahminleriylesoybean_test$pred.linsütununu oluştur. - GAM modeli
model.gamtahminleriylesoybean_test$pred.gamsütununu oluştur.- GAM modellerinde,
predict()metodu bir matris döndürür; bu matrisi bir vektöre çevirmek içinas.numeric()kullan.
- GAM modellerinde,
- Tahmin sütunlarını tek bir değer sütununda
predve anahtar sütunundamodeltypeolacak şekildepivot_longer()ile uzun formata çevirmen için boşlukları doldur. Uzun veri çerçevesinin adısoybean_longolsun. - 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.
Timefonksiyonu olarakweightiçin bir saçılım grafiği.Timefonksiyonu 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")