【问题标题】:Pre-Processing Data in Caret and Making Predictions on an Unknown Data Set预处理插入符号中的数据并对未知数据集进行预测
【发布时间】:2016-07-01 15:30:02
【问题描述】:

我正在使用 Caret 包训练函数来拟合模型,然后进行预测以预测未知数据集上的值(然后我会得到反馈,以便了解我的预测质量)。我遇到了问题,我确信这与预处理未知数据有关。

简而言之,这就是我正在做的事情:

预处理训练数据:

preproc = preProcess(train_num,method = c("center", "scale"))
train_standardized <- predict(preproc, train_num)

训练模型:

gbmGrid <-  expand.grid(interaction.depth = c(1, 5, 9),
                        n.trees = c(100,500),
                        shrinkage = 0.1,
                        n.minobsinnode = 20)



train.boost = train(x=train_standardized[,-length(train_standardized)],
                    y=train_standardized$response,
                    method = "gbm",
                    metric = "ROC",
                    maximize = FALSE,
                    tuneGrid= gbmGrid,
                    trControl = trainControl(method="cv",
                           number=5,
                           classProbs = TRUE, 
                           verboseIter = TRUE, 
                           summaryFunction=twoClassSummary,
                           savePredictions = TRUE))

为预测准备未知数据:

...
unknown_standardized <- predict(preproc, unknown_num)
...

对未知数据进行实际预测:

preds <- predict(train.boost,newdata=unknown_standardized,type="prob")

请注意,“preproc”对象与训练集分析产生的对象相同,用于对模型进行训练的中心化/标准化预测。

当我得到我的评估时,我对未知数据的评估比使用训练集预测的要差得多(通过交叉验证使用训练数据的 ROC 约为 0.83,使用我返回的未知数据的 ROC评估方约为 0.70)。

我的流程正确吗?我做错了什么?

提前致谢。

【问题讨论】:

  • 您实际上使用插入符号显示了整个工作流程。干得好!

标签: r r-caret


【解决方案1】:

从某种意义上说,你根本没有做错任何事。

预测器在训练样本上的表现可能会更好,因为它已使用该数据来构建模型。

训练集的重点是查看该模型的泛化程度。它可能或多或少地“过度拟合”训练数据,并且在新数据上做得更差。

至少在您对新数据进行评分后,您就知道模型的真实准确性。如果该准确性足以满足您的目的,那么该模型将是可用的并且(因为您已经完成了训练/测试)对新数据具有鲁棒性。

现在,如果模型在更广泛的数据上进行训练,它可能会变得更好。因此,为了提高实际准确性,可能值得使用交叉验证在数据的多个切片上进行训练——k 折交叉验证。 Caret 有一个很好的设施。 http://machinelearningmastery.com/how-to-estimate-model-accuracy-in-r-using-the-caret-package/

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 1970-01-01
    • 2021-10-17
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2020-01-06
    相关资源
    最近更新 更多