開始使用免費開始

比較 RMSE 與均方根相對誤差

在這個練習中,你將示範:在建模前先對金額型的輸出做對數轉換,能改善平均相對誤差(但會增大 RMSE),相較於直接對金額輸出建模。你會把前一題得到的 model.log 與一個直接擬合收入的模型(model.abs)做比較。

income_trainincome_test 資料集已預先載入,你的模型 model.log 也已就緒。

另提供:

  • model.abs:使用下列公式,直接用輸入來擬合收入的模型:

    Income2005 ~ Arith + Word + Parag + Math + AFQT

本練習屬於課程

R 中的監督式學習:回歸

檢視課程

練習說明

  • 填入空格,將兩個模型的預測加入 income_test
    • 別忘了對 model.log 的預測先取指數,才能還原對數轉換!
  • 填入空格,使用 pivot_longer() 重塑預測欄位,並計算殘差與相對誤差。
  • 填入空格,計算預測的 RMSE 與相對 RMSE。
    • 哪個模型的絕對誤差較大?哪個模型的相對誤差較大?

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# fmla.abs is available
fmla.abs

# model.abs is available
summary(model.abs)

# Add predictions to the test set
income_test <- income_test %>%
  mutate(pred.absmodel = ___(___, income_test),        # predictions from model.abs
         pred.logmodel = ___(___(___, income_test)))   # predictions from model.log

# pivot_longer the predictions and calculate residuals and relative error
income_long <- income_test %>% 
  pivot_longer(names_to = 'modeltype', values_to = 'pred', cols=c('pred.absmodel', 'pred.logmodel')) %>%
  mutate(residual = ___,   # residuals
         relerr   = ___)   # relative error

# Calculate RMSE and relative RMSE and compare
income_long %>% 
  group_by(modeltype) %>%      # group by modeltype
  summarize(rmse     = ___,    # RMSE
            rmse.rel = ___)    # Root mean squared relative error
編輯並執行程式碼