【发布时间】: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 * 表示终端节点
- 根 56868 32009190000 455.2222
- lender_count
- lender_count
- lender_count
- lender_count
- lender_count>=12.5 12608 622737900 510.6202 *
- lender_count>=20.5 8841 2092969000 892.0767
- lender_count
- lender_count>=38.5 1386 832502400 1454.7080 *
- lender_count>=81.5 246 2046660000 5040.1420
- lender_count
- lender_count>=229 22 149470700 11340.9100 *
- 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) %>% rmse(truth = loan_amount, estimate = .pred) # A tibble: 1 x 3 .metric .estimator .estimate <chr> <chr> <dbl> 1 rmse standard 50 -
@akrun,超级奇怪。我会再试一次。感谢您的时间和努力!
-
请检查
packageVersion('tidymodels')#[1] ‘0.1.3’是否不同 -
@akrun,它是 0.1.3
标签: r tidyverse decision-tree tidymodels yardstick