Tidymodels(使用fit_samples()拟合随机森林): Fold01: internal: 错误: 必须按在`.data`中找到的变量分组

概述

我已经制作了一个随机森林回归模型,我的目标是使用fit_samples()函数拟合模型,然后调整超参数。然而,我遇到了下面的错误信息:

错误信息:

   ! Fold01: model: 请求调优列,但在数据中有14个预测变量。将使用14个...   x Fold01: internal: 错误: 必须按在`.data`中找到的变量分组。   * 未找到列`mtry`。   ! Fold02: model: 请求调优列,但在数据中有14个预测变量。将使用14个...   x Fold02: internal: 错误: 必须按在`.data`中找到的变量分组。   * 未找到列`mtry`。   ! Fold03: model: 请求调优列,但在数据中有14个预测变量。将使用14个...   x Fold03: internal: 错误: 必须按在`.data`中找到的变量分组。   * 未找到列`mtry`。

我在网上搜索了解决方案,但找不到与我的特定问题相符的问题。我不是高级R用户,我正在尽我最大的努力慢慢摸索Tidymodels包

如果有人能帮助解决这个错误信息,我将不胜感激。

提前多谢

R代码

   seed(45L)   #打开库   library(tidymodels)   library(ranger)   library(dplyr)   #将单个数据集拆分为两个:训练集和测试集   data_split <- initial_split(FID)   #为两个集合创建数据框:   train_data <- training(data_split)   test_data  <- testing(data_split)  #使用10折交叉验证重新采样数据(默认10折)  cv <- vfold_cv(train_data, v=10) ########################################################### ##制作配方  rec <- recipe(Frequency ~ ., data = FID) %>%   step_nzv(all_predictors(), freq_cut = 0, unique_cut = 0) %>% # 移除零方差变量  step_novel(all_nominal()) %>% # 准备测试数据以处理先前未见的因子级别   step_medianimpute(all_numeric(), -all_outcomes(), -has_role("id vars"))  %>% # 用中位数替换缺失的数值观测值  step_dummy(all_nominal(), -has_role("id vars")) # 为分类变量生成虚拟变量  #制作随机森林模型       mod_rf <- rand_forest(                            mtry = tune(),                            trees = 1000,                            min_n = tune()                             ) %>%                           set_mode("regression") %>%                           set_engine("ranger")     ##工作流程      wflow_rf <- workflow() %>%                             add_model(mod_rf) %>%                                         add_recipe(rec)    ##拟合模型     plan(multisession)     fit_rf<-fit_resamples(                        wflow_rf,                        cv,                        metrics = metric_set(rmse, rsq),                        control = control_resamples(save_pred = TRUE,                        extract = function(x) extract_model(x)))   #错误信息   ! Fold01: model: 请求调优列,但在数据中有14个预测变量。将使用14个...   x Fold01: internal: 错误: 必须按在`.data`中找到的变量分组。   * 未找到列`mtry`。   ! Fold02: model: 请求调优列,但在数据中有14个预测变量。将使用14个...   x Fold02: internal: 错误: 必须按在`.data`中找到的变量分组。   * 未找到列`mtry`。   ! Fold03: model: 请求调优列,但在数据中有14个预测变量。将使用14个...   x Fold03: internal: 错误: 必须按在`.data`中找到的变量分组。   * 未找到列`mtry`。

数据框FID

structure(list(Year = c(2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017), Month = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L), .Label = c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"), class = "factor"), Frequency = c(36, 28, 39, 46, 5, 0, 0, 22, 10, 15, 8, 33, 33, 29, 31, 23, 8, 9, 7, 40, 41, 41, 30, 30, 44, 37, 41, 42, 20, 0, 7, 27, 35, 27, 43, 38), Days = c(31, 28, 31, 30, 6, 0, 0, 29, 15, 29, 29, 31, 31, 29, 30, 30, 7, 0, 7, 30, 30, 31, 30, 27, 31, 28, 30, 30, 21, 0, 7, 26, 29, 27, 29, 29)), row.names = c(NA, -36L), class = "data.frame")

回答:

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注