R手册(Model Tools)--modelr

modelr :辅助管道建模

modelr软件包提供的功能可以帮助您在建模时创建精美的流水线。

分区和采样

resample(data, idx) 抽取idx向量指定的观测值
resample_partition(data, p) 按p向量给定的值分区

rs <- resample(mtcars, 1:10)
as.data.frame(rs)

ex <- resample_partition(mtcars, c(test = 0.3, train = 0.7))
lapply(ex, dim)

bootstrap(mtcars, 100)%>%
 map( ~ lm(mpg ~ wt, data = .))%>%
 map_df( broom::tidy)

交叉验证抽样

bootstrap(data, n, id = ".id") 生成n个bootstrap副本
crossv_kfold(data, k = 5, id = ".id")将数据拆分为k独占分区,并将每个分区用于测试训练拆分
crossv_mc(data, n, test = 0.2, id = ".id")生成n组数据,交叉验证模型,test为测试集比例

# bootstrap
boot <- bootstrap(mtcars, 100)
# k-fold cross-validation
cv1 <- crossv_kfold(mtcars, 5)
# Monte Carlo cross-validation
cv2 <- crossv_mc(mtcars, 100)

crossv_mc(mtcars, 100)%>%
  map(cv2$train, ~ lm(mpg ~ wt, data = .))%>%   #模型
  map2_dbl(cv2$test, rmse)%>%
  hist()

模型质量指标

rmse(model, data) 均方根误差
mae(model, data) 平均绝对误差
rsquare(model, data) R^2预测的方差除以响应的方差
qae(model, data, probs)误差的分位数

与模型交互

一组函数使您可以无缝地将预测和残差添加为现有数据框的附加列:
add_predictions(data, model)向数据框添加预测
add_residuals(data, model)向数据框添加残差

df <- tibble::data_frame(
  x = sort(runif(100)),
  y = 5 * x + 0.5 * x ^ 2 + 3 + rnorm(length(x))
)

mod <- lm(y ~ x, data = df)
df %>% add_predictions(mod)
df %>% add_residuals(mod)

为了可视化目的,通常使用数据中均匀间隔的网格点
data_grid(data, ..., .model = NULL)展开数据框,包含所有值的组合,对可视化模型有用
seq_range(x, n, by, trim = NULL, expand = NULL, pretty = FALSE)在矢量范围内生成一个序列

# 对连续性变量, seq_range函数很有用
mtcars_mod <- lm(mpg ~ wt + cyl + vs, data = mtcars)
data_grid(mtcars, wt = seq_range(wt, 10), cyl, vs) %>%   
  add_predictions(mtcars_mod)%>%
  head()
#> # A tibble: 60 x 4
#>       wt   cyl    vs  pred
#>    <dbl> <dbl> <dbl> <dbl>
#>  1  1.51     4     0  28.4
#>  2  1.51     4     1  28.9
#>  3  1.51     6     0  25.6
#>  4  1.51     6     1  26.2
#>  5  1.51     8     0  22.9
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值