R插入符号包,使用数据集调整参数
我重写了我的问题: 我正在将R与插入符号包一起使用 我将数据集划分为3个部分:训练集、验证集和测试集。 验证集将用于调整训练参数 插入符号的训练功能通过重采样(默认情况下为引导)调整训练参数。 有没有办法告诉train函数使用我的验证数据集参数而不是重新采样 现在我必须使用一个循环,你可以在下面的例子中看到 例如: 代码:R插入符号包,使用数据集调整参数,r,r-caret,R,R Caret,我重写了我的问题: 我正在将R与插入符号包一起使用 我将数据集划分为3个部分:训练集、验证集和测试集。 验证集将用于调整训练参数 插入符号的训练功能通过重采样(默认情况下为引导)调整训练参数。 有没有办法告诉train函数使用我的验证数据集参数而不是重新采样 现在我必须使用一个循环,你可以在下面的例子中看到 例如: 代码: library(caret) set.seed(3) data("segmentationData") # # Partition d
library(caret)
set.seed(3)
data("segmentationData")
#
# Partition data set in training, validation, testing.
#
inTraining <- createDataPartition(segmentationData$Class, p=.60, list=FALSE)
training <- segmentationData[ inTraining,]
notTraining <- segmentationData[-inTraining,]
inValidation <- createDataPartition(notTraining$Class, p=.50, list=FALSE)
validation <- notTraining[inValidation,]
testing <- notTraining[-inValidation,]
#
# The model will be trained using method 'rpart',
# it has cp (Complexity Parameter) as only tuning parameter.
#
# The training will be tuned using different values for cp.
# We'll choose the cp that maximizes accuracy.
#
cps = c(0, 0.001, 0.003, 0.01, 0.03)
maxAccuracy = -1
for(currentCp in cps) {
#
# Call train function using currentCp and train control set to 'none'.
#
f <- train(Class~., training, method = 'rpart',
trControl = trainControl(method = "none"),
tuneGrid = data.frame( cp = currentCp ))
#
# Predict on validation data set.
#
pr <- predict(f, validation)
#
# Select cp that maximizes accuracy.
#
cm=confusionMatrix(pr, validation$Class)
currentAccuracy = cm$overall[[1]]
if(currentAccuracy > maxAccuracy) {
cpMaxAccuracy = currentCp
maxAccuracy = currentAccuracy
}
}
#
# Output.
#
cpMaxAccuracy
maxAccuracy
库(插入符号)
种子(3)
数据(“分段数据”)
#
#在培训、验证、测试中划分数据集。
#
你为什么要这么做?然后在培训过程中使用验证数据。@AlexR原始数据集可以分为培训集、验证集和测试集。验证集用于调整训练参数。我的问题是,在插入符号中是否有一种自动调整训练参数的方法,而不是交叉验证。现在我必须用循环来做。你能用循环来添加你的代码吗?也许会更清楚你在找什么…@JoteN我改变了我的问题并添加了代码示例你为什么要这样做?然后在培训过程中使用验证数据。@AlexR原始数据集可以分为培训集、验证集和测试集。验证集用于调整训练参数。我的问题是,在插入符号中是否有一种自动调整训练参数的方法,而不是交叉验证。现在我必须用循环来做。你能用循环来添加你的代码吗?也许会更清楚你在找什么…@JoteN我改变了我的问题并添加了代码示例