如何在使用 caret 包构建模型时跟踪进度?

Posted

技术标签:

【中文标题】如何在使用 caret 包构建模型时跟踪进度?【英文标题】:How to track a progress while building model with the caret package? 【发布时间】:2014-08-11 14:45:13 【问题描述】:

我正在尝试使用 caret 包中的 train 函数构建模型:

 model <- train(training$class ~ .,data=training, method = "nb")

训练集包含大约 20K 个观测值,每个观测值有 100 个以上的变量。我想知道从该数据集构建模型是否需要数小时或数天。

如何估计从数据中训练模型所需的时间?使用 caret 包中的函数时如何跟踪训练过程的进度?

【问题讨论】:

【参考方案1】:

假设您正在使用

训练模型 调整参数的扩展网格(调整参数的所有组合) 以及您选择的重采样技术(交叉验证、引导等)

你可以设置

trainctrl <- trainControl(verboseIter = TRUE)

并将其设置在 train 函数的 trControl 参数中以跟踪训练进度

model <- train(training$class ~ .,data=training, method = 'nb', trControl = trainctrl)

这会将每个重采样阶段的进度打印到控制台,并允许您衡量训练/参数调整的进度。

要估算总运行时间,您可以运行模型一次以查看其运行时间,然后根据您的重采样方案和参数组合的数量通过相应的乘法来估算总时间。这可以通过再次设置 trainControl 并将 tuneLength 设置为 1 来完成:

trainctrl <- trainControl(method = 'none')
model <- train(training$class ~ ., data = training, method = 'nb', trControl = trainctrl, tuneLength = 1)

希望这会有所帮助! :)

【讨论】:

以上是关于如何在使用 caret 包构建模型时跟踪进度?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在并行随机森林构建过程中跟踪进度?

R语言使用caret包构建神经网络模型(Neural Network )构建回归模型通过method参数指定算法名称

R语言使用caret包构建GBM模型:在模型最优参数已知的情况下,拟合整个训练集,而无需进行任何重采样或参数调优

R语言使用caret包构建gbdt模型(随机梯度提升树Stochastic Gradient Boosting )构建回归模型通过method参数指定算法名称

R语言caret包构建机器学习回归模型(regression model)使用DALEX包进行模型解释分析特征重要度偏依赖分析等

R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型通过method参数指定算法名称通过trainControl函数控制训练过程