用 RMSE 評估預測

在 Tidyverse 中進行資料建模

Albert Y. Kim

Assistant Professor of Statistical and Data Sciences

複習:殘差

在 Tidyverse 中進行資料建模

均方誤差

# 模型 1:price 作為 size 與 year built 的函數
model_price_1 <- lm(log10_price ~ log10_size + yr_built,
                    data = house_prices)

# 殘差平方和:
get_regression_points(model_price_1) %>%
  mutate(sq_residuals = residual^2) %>%
  summarize(sum_sq_residuals = sum(sq_residuals))
# A tibble: 1 x 1
  sum_sq_residuals
             <dbl>
1             585.
在 Tidyverse 中進行資料建模

均方誤差

# 均方誤差:用 mean() 取代 sum()
get_regression_points(model_price_1) %>%
  mutate(sq_residuals = residual^2) %>%
  summarize(mse = mean(sq_residuals))
# A tibble: 1 x 1
     mse
   <dbl>
1 0.0271
在 Tidyverse 中進行資料建模

均方根誤差

# 均方根誤差:
get_regression_points(model_price_1) %>%
  mutate(sq_residuals = residual^2) %>%
  summarize(mse = mean(sq_residuals)) %>%
  mutate(rmse = sqrt(mse))
# A tibble: 1 x 2
     mse  rmse
   <dbl> <dbl>
1 0.0271 0.164
在 Tidyverse 中進行資料建模

新房預測的 RMSE

# 建立「new」房屋的資料框
new_houses <- data_frame(
  log10_size = c(2.9, 3.6),
  condition = factor(c(3, 4))
)
new_houses
# A tibble: 2 x 2
  log10_size condition
       <dbl> <fct>    
1        2.9 3        
2        3.6 4   
在 Tidyverse 中進行資料建模

新房預測的 RMSE

# 取得預測
get_regression_points(model_price_3,
                      newdata = new_houses)
# A tibble: 2 x 4
     ID log10_size condition log10_price_hat
  <int>      <dbl> <fct>               <dbl>
1     1        2.9 3                    5.34
2     2        3.6 4                    5.94
在 Tidyverse 中進行資料建模

新房預測的 RMSE

# 計算 RMSE
get_regression_points(model_price_3,
                      newdata = new_houses) %>%
  mutate(sq_residuals = residual^2) %>%
  summarize(mse = mean(sq_residuals)) %>%
  mutate(rmse = sqrt(mse))
Error in mutate_impl(.data, dots) : 
  Evaluation error: object 'residual' not found.
在 Tidyverse 中進行資料建模

一起來練習吧!

在 Tidyverse 中進行資料建模

Preparing Video For Download...