下面是一个例子:
tc <- trainControl(method = "cv", number = 20)
lm1_cv <- train(y~., data = data, method = "lm", preProcess = c("center", "scale"),
trControl = tc)
lm1_cv
它具有以下输出:
Linear Regression
1338 samples
6 predictor
Pre-processing: centered (8), scaled (8)
Resampling: Cross-Validated (20 fold)
Summary of sample sizes: 1272, 1272, 1270, 1271, 1270, 1272, ...
Resampling results:
RMSE Rsquared MAE
6048.516 0.7443666 4203.653
我有两个问题:
1.)Caret正在进行20重交叉验证,所有测试数据结果的平均值是否存储在lm1_cv$results
中?
2.)如果是,如何访问所有training数据的平均结果(RMSE等)?
总的来说:我的目标是比较模型在训练数据和测试数据上的性能,但是我不知道如何访问这两个数据。
1条答案
按热度按时间mbzjlibv1#
是,所有测试数据的平均结果存储在
lm1_cv$results
对象中。脱字符号包中的train()
函数自动执行交叉验证,并将结果存储在返回对象的results元素中。您可以通过访问lm1_cv
对象的results元素,然后选择适当的度量来访问平均结果(例如,RMSE、R平方等)。例如:在本例中,results对象是通过访问
lm1_cv
对象的results元素创建的,然后使用mean()
函数计算测试数据的平均RMSE。若要存取所有定型数据的平均结果(RMSE等),您可以使用脱字符号套件中的
resamples()
函数。此函数可让您从交叉验证模型撷取定型和测试数据结果。以下是如何执行此作业的范例:在本例中,
resamples()
函数用于从lm1_cv
对象中提取训练和测试数据结果。()函数用于计算训练数据和测试数据的平均RMSE。results2$RMSE[, "Training"]
和results2$RMSE[, "Testing"]
参数用于选择训练数据和测试数据的RMSE值。您可以使用此方法计算模型在训练和测试数据上的平均性能,并比较结果。