【问题标题】:Error in rmse(., truth = variable, estimate = .pred) : unused arguments (truth = , estimate = .pred) in R Tidymodels (yardstick)rmse 中的错误(。,真值 = 变量,估计 = .pred):R Tidymodels(标准)中未使用的参数(真值 = ,估计 = .pred)
【发布时间】:2021-09-27 12:35:38
【问题描述】:

我正在拟合回归树模型,使用此 Tidymodels tutorial

# Create a specification
tree_spec <- decision_tree() %>% set_engine("rpart")
# Create an engine
reg_tree_spec <- tree_spec %>% set_mode("regression")
# Fit the model
reg_tree_fit <- fit(reg_tree_spec, loan_amount ~ ., kenya_data_df_train)

# Print
reg_tree_fit

欧洲防风草模型对象

适应时间:2.5s n= 56868

节点),分裂,n,偏差,yval * 表示终端节点

  1. 根 56868 32009190000 455.2222
  2. lender_count
  3. lender_count
  4. lender_count
  5. lender_count
  6. lender_count>=12.5 12608 622737900 510.6202 *
  7. lender_count>=20.5 8841 2092969000 892.0767
  8. lender_count
  9. lender_count>=38.5 1386 832502400 1454.7080 *
  10. lender_count>=81.5 246 2046660000 5040.1420
  11. lender_count
  12. lender_count>=229 22 149470700 11340.9100 *
  13. lender_count>=728.5 9 554222200 44555.5600 *

但我在使用测试数据时收到一个奇怪的错误。

# Evaluate on test data
augment(reg_tree_fit, new_data = kenya_data_df_test) %>%
  rmse(truth = loan_amount, estimate = .pred)
Error in rmse(., truth = loan_amount, estimate = .pred) : 
unused arguments (truth = loan_amount, estimate = .pred)

我的dput() 火车数据示例:

structure(list(loan_amount = 200, term_in_months = 14, lender_count = 8, 
sector_Agriculture = 1L, sector_Arts = 0L, sector_Clothing = 0L, 
sector_Construction = 0L, sector_Education = 0L, sector_Entertainment = 0L, 
sector_Food = 0L, sector_Health = 0L, sector_Housing = 0L, 
sector_Manufacturing = 0L, sector_Personal_Use = 0L, sector_Retail = 0L, 
sector_Services = 0L, sector_Transportation = 0L, sector_Wholesale = 0L, 
repayment_interval_bullet = 0L, repayment_interval_irregular = 0L, 
repayment_interval_monthly = 1L, repayment_interval_weekly = 0L, 
gender_both = 0L, gender_female = 1L, gender_male = 0L, gender_NA = 0L), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame"), .internal.selfref = <pointer: 
0x000001d8b6f91ef0>)

dput() 用于测试数据。

structure(list(loan_amount = 250, term_in_months = 14, lender_count = 
1, 
sector_Agriculture = 0L, sector_Arts = 0L, sector_Clothing = 0L, 
sector_Construction = 0L, sector_Education = 0L, sector_Entertainment 
= 0L, 
sector_Food = 0L, sector_Health = 0L, sector_Housing = 0L, 
sector_Manufacturing = 0L, sector_Personal_Use = 0L, sector_Retail = 
0L, 
sector_Services = 1L, sector_Transportation = 0L, sector_Wholesale = 
0L, 
repayment_interval_bullet = 0L, repayment_interval_irregular = 1L, 
repayment_interval_monthly = 0L, repayment_interval_weekly = 0L, 
gender_both = 0L, gender_female = 1L, gender_male = 0L, gender_NA = 
0L), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame"), .internal.selfref = 
<pointer: 0x000001d8b6f91ef0>)

【问题讨论】:

  • @akrun,我也添加了测试数据
  • 对我来说,新数据不会出错,即augment(reg_tree_fit, new_data = kenya_data_df_test) %&gt;% rmse(truth = loan_amount, estimate = .pred) # A tibble: 1 x 3 .metric .estimator .estimate &lt;chr&gt; &lt;chr&gt; &lt;dbl&gt; 1 rmse standard 50
  • @akrun,超级奇怪。我会再试一次。感谢您的时间和努力!
  • 请检查packageVersion('tidymodels')#[1] ‘0.1.3’是否不同
  • @akrun,它是 0.1.3

标签: r tidyverse decision-tree tidymodels yardstick


【解决方案1】:

已修复akrun 上面的答案 - yardstick::rmse() 给出了必要的结果。

【讨论】:

    猜你喜欢
    • 2018-09-11
    • 2021-02-28
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2017-11-22
    相关资源
    最近更新 更多