首先我要说的是,我读过很多关于交叉验证的帖子,但似乎存在很多混乱。我的理解很简单:
- 执行 k 倍交叉验证,即 10 倍,以了解 10 倍的平均误差。
- 如果可以接受,则在完整的数据集上训练模型。
我正在尝试使用构建决策树rpart
在 R 中并利用caret
包裹。下面是我正在使用的代码。
# load libraries
library(caret)
library(rpart)
# define training control
train_control<- trainControl(method="cv", number=10)
# train the model
model<- train(resp~., data=mydat, trControl=train_control, method="rpart")
# make predictions
predictions<- predict(model,mydat)
# append predictions
mydat<- cbind(mydat,predictions)
# summarize results
confusionMatrix<- confusionMatrix(mydat$predictions,mydat$resp)
我有一个关于插入符序列应用程序的问题。我读过了插入符包的简短介绍训练部分指出在重采样过程中确定“最佳参数集”。
在我的例子中,我的编码正确吗?我需要定义rpart
我的代码中的参数或者我的代码是否足够?
当您执行 k 倍交叉验证时,您已经对每个样本进行了预测,即超过 10 个不同的模型(假设 k = 10)。
无需对完整数据进行预测,因为您已经从 k 个不同模型中获得了预测。
您可以执行以下操作:
train_control<- trainControl(method="cv", number=10, savePredictions = TRUE)
Then
model<- train(resp~., data=mydat, trControl=train_control, method="rpart")
如果您想以良好的格式查看观察到的结果和预测,您只需输入:
model$pred
另外,对于问题的第二部分,插入符应该处理所有参数。如果需要,您可以手动尝试调整参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)