【问题标题】:fit final model on both train and test data在训练和测试数据上拟合最终模型
【发布时间】:2021-03-04 03:24:32
【问题描述】:

我使用交叉验证来使用 R 中的 Caret 包找到最佳超参数。这个模型适合完整的训练数据,但我想在训练和测试数据上训练最终模型。我该怎么做?

【问题讨论】:

    标签: r machine-learning r-caret


    【解决方案1】:

    您可以获得最佳参数并将其放入单个网格中:

    library(caret)
    idx = sample(nrow(iris),100)
    dat = iris
    dat$Species = ifelse(atd$Species=="versicolor","v","o")
    traindf = dat[idx,]
    testdf = dat[idx,]
    
    mdl = train(Species ~ .,data=traindf,method="gbm",
    trControl=trainControl(method="cv"))
    
    train_fit = train(Species ~ .,data=traindf,method="gbm",
                      trControl=trainControl(method="cv"),
                      tuneGrid = mdl$bestTune)
    
    test_fit = train(Species ~ .,data=testdf,method="gbm",
                      trControl=trainControl(method="cv"),
                      tuneGrid = mdl$bestTune)
    

    由于您没有提供数据或更多信息。这是直接的方法。否则,您将调用该方法,例如在本例中为 gbm() 并再次拟合。

    【讨论】:

    • 谢谢你,这帮助很大。我看到您在 trainControl 中指定了 method = "cv",如果我们只想在不调整参数的情况下拟合最终模型,我觉得这没有意义。当我们只想用最佳调整参数拟合模型时,是否有理由使用 method="cv",还是只使用 method="none" 确实更有意义?
    • 是的,您可以使用 method="none"。感谢您指出这一点
    猜你喜欢
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2021-12-26
    • 2015-10-25
    • 1970-01-01
    • 2012-12-25
    相关资源
    最近更新 更多