首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用模型加速行的复制

使用模型加速行的复制
EN

Stack Overflow用户
提问于 2020-09-08 16:00:05
回答 1查看 28关注 0票数 0

我想为给定一些模型和称为训练的数据框架的一个整数自变量(iv1)创建重复预测。这就是我目前的方法。我理解这不是自包含的,但希望它是自解释的:

代码语言:javascript
复制
number_of_samples <- 10
results <- NULL
for (row in 1:nrow(training)) {

    fake_iv1_values <- sample(1:100, number_of_samples)
    case <- training[row,]

    for (iv1 in fake_iv1_values) {
        case$iv1 <- iv1

        case$prediction <- predict(some_model, newdata = case)

        results <- rbind(results, case)
    }
}

使用循环非常慢。我想知道,是否可以加快速度?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-08 16:47:56

试试这个。

可复制的假数据和模型:

代码语言:javascript
复制
# create fake data
n_row <- 100
n_xs  <- 100

training <- data.frame(y = rnorm(n_row), iv1 = rnorm(n_row))
training[, paste0("x",1:n_xs)] <- replicate(n_xs, list(rnorm(n_row)))

# example model
some_model <- lm(y~., training)

重写代码:

代码语言:javascript
复制
number_of_samples <- 10
results <- NULL

# vector of several fake_iv1_values vectors
fake_iv1_values <- as.numeric(replicate(nrow(training), sample(1:100, number_of_samples)))

# replicate each row of the original dataframe
results <- training[rep(seq_len(nrow(training)), each = number_of_samples), ]

# add fake values to the replicated dataframe
results$iv1 <- fake_iv1_values

# get predictions
results$prediction <- predict(some_model, newdata = results)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63789588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档