R包插入符号:如何访问训练和测试数据的结果?

pod7payv  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(131)

下面是一个例子:

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等)?
总的来说:我的目标是比较模型在训练数据和测试数据上的性能,但是我不知道如何访问这两个数据。

mbzjlibv

mbzjlibv1#

是,所有测试数据的平均结果存储在lm1_cv$results对象中。脱字符号包中的train()函数自动执行交叉验证,并将结果存储在返回对象的results元素中。您可以通过访问lm1_cv对象的results元素,然后选择适当的度量来访问平均结果(例如,RMSE、R平方等)。例如:

# Access the results of the cross-validation
results <- lm1_cv$results
    
# Calculate the average RMSE of the testing data
mean(results$RMSE)

在本例中,results对象是通过访问lm1_cv对象的results元素创建的,然后使用mean()函数计算测试数据的平均RMSE。
若要存取所有定型数据的平均结果(RMSE等),您可以使用脱字符号套件中的resamples()函数。此函数可让您从交叉验证模型撷取定型和测试数据结果。以下是如何执行此作业的范例:

# Extract the training and testing data results
results2 <- resamples(lm1_cv)

# Calculate the average RMSE for the training data
mean(results2$RMSE[, "Training"])

# Calculate the average RMSE for the testing data
mean(results2$RMSE[, "Testing"])

在本例中,resamples()函数用于从lm1_cv对象中提取训练和测试数据结果。()函数用于计算训练数据和测试数据的平均RMSE。results2$RMSE[, "Training"]results2$RMSE[, "Testing"]参数用于选择训练数据和测试数据的RMSE值。您可以使用此方法计算模型在训练和测试数据上的平均性能,并比较结果。

相关问题