有没有办法调整配方工作流程中的参数?

问题描述 投票:0回答:1

我想使用

step_impute_knn
包中的
recipe
函数来估算数据中的一些缺失值。我已经使用默认参数(neighbours = 5、nthread = 1 和 eps = 1e-08)对其进行了测试,可以看到数值变量(例如)的结果平均值和标准差与插补后的原始数据相当接近.

但是,我想调整这些参数以查看是否存在最佳设置,但我什至不知道如何在配方包内开始。 这里这里的答案太复杂或具体,我无法理解。

功能

step_impute_knn
不提供任何调整选项,据我所知,我宁愿不手动执行此操作。有没有简单的方法可以做到这一点?

样本数据:

train <- structure(list(PassengerId = c("0001_01", "0002_01", "0003_01", 
"0003_02", "0004_01", "0005_01"), HomePlanet = c("Europa", "Earth", 
"Europa", "Europa", "Earth", NA), CryoSleep = c("False", 
"False", "False", "False", "False", "False"), Cabin = c("B/0/P", 
"F/0/S", "A/0/S", "A/0/S", "F/1/S", "F/0/P"), Destination = c("TRAPPIST-1e", 
"TRAPPIST-1e", "TRAPPIST-1e", "TRAPPIST-1e", "TRAPPIST-1e", "PSO J318.5-22"
), Age = c(39, 24, 58, 33, 16, 44), VIP = c("False", "False", 
"True", "False", "False", "False"), RoomService = c(0, 109, 43, 
0, 303, 0), FoodCourt = c(0, 9, 3576, 1283, 70, 483), ShoppingMall = c(0, 
25, 0, 371, 151, 0), Spa = c(0, 549, 6715, 3329, 565, 291), VRDeck = c(0, 
44, 49, 193, 2, 0), Name = c("Maham Ofracculy", "Juanna Vines", 
"Altark Susent", "Solam Susent", "Willy Santantines", "Sandie Hinetthews"
), Transported = c("False", "True", "False", "False", "True", 
"True")), row.names = c(NA, 6L), class = "data.frame")

到目前为止我所拥有的:

train_no_na <- train %>%
na.omit()

imp_knn_blueprint <- recipe(Transported ~ ., data = train_no_na) %>%
     step_impute_knn(recipe = ., HomePlanet, 
              impute_with = imp_vars(.), neighbors = 5, 
              options = list(nthread = 1, eps = 1e-08))

imp_knn_prep <- prep(imp_knn_blueprint, training = train_no_na)
imp_knn_5 <- bake(imp_knn_prep, new_data = train)
r tidymodels recipe
1个回答
0
投票

是的,可以(尽管我们不考虑

nthread
eps
调整参数)。

您可以在配方中为它们指定

tune()
值,并将其视为与模型关联的任何其他调整参数。

您可以使用

tune_grid()
或其他调整参数功能之一。 tidymodels 甚至了解这个特定参数是什么,并具有内置的默认范围(尽管您可以自己选择网格)

tidymodels 书中以及

tune_grid
帮助页面(在示例中)中有一个调整配方参数的示例。

© www.soinside.com 2019 - 2024. All rights reserved.