【发布时间】:2017-02-06 11:52:06
【问题描述】:
希望这不是一个完全愚蠢的问题。我有一个数据集df, n = 2228, p = 19,它描述了5 马品种的特征。我想将连续变量 price 建模为每个 breed 的其他 17 个预测变量(甚至是分类变量和连续变量)的函数,方法是首先将数据拆分为 training 和 test。
library(tidyverse)
library(caret)
library(glmnet)
# pre- processing reveals no undo correlation, linear dependency or near
# zero variance veriables
train <- df %>% group_by(breed) %>% sample_frac(size = 2/3) %>% droplevels()
test <- anti_join(df, train) %>% droplevels()
# I imagine I should be somehow able to do this in the following step but can't
# figure it out
model <- train(price ~ ., data = train, method = "glmnet")
test$pred <- predict(model, newdata = test)
据我所知,按breed 拆分数据没有问题(参见上面的代码)。但是,我不知道如何拟合按breed 分组的模型。我想做的类似于nlme 包中的以下内容,即lmList(price ~ . |breed, data = df)
【问题讨论】:
-
代码对我来说看起来很合理,你的问题是什么?在插入符号中查看
createDataPartition(),它旨在处理培训/测试拆分 -
@NathanDay 抱歉,问题已澄清
-
明白了,我不知道如何使用插入符号对多个组进行即时训练。你总是可以使用
split和lapply来完成它,但我敢打赌这里有人可以提供更清洁的解决方案
标签: r machine-learning regression r-caret