Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R插入符号包,使用数据集调整参数_R_R Caret - Fatal编程技术网

R插入符号包,使用数据集调整参数

R插入符号包,使用数据集调整参数,r,r-caret,R,R Caret,我重写了我的问题: 我正在将R与插入符号包一起使用 我将数据集划分为3个部分:训练集、验证集和测试集。 验证集将用于调整训练参数 插入符号的训练功能通过重采样(默认情况下为引导)调整训练参数。 有没有办法告诉train函数使用我的验证数据集参数而不是重新采样 现在我必须使用一个循环,你可以在下面的例子中看到 例如: 代码: library(caret) set.seed(3) data("segmentationData") # # Partition d

我重写了我的问题:

我正在将R与插入符号包一起使用

我将数据集划分为3个部分:训练集、验证集和测试集。 验证集将用于调整训练参数

插入符号的训练功能通过重采样(默认情况下为引导)调整训练参数。 有没有办法告诉train函数使用我的验证数据集参数而不是重新采样

现在我必须使用一个循环,你可以在下面的例子中看到

例如: 代码:

    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我改变了我的问题并添加了代码示例