Oi Athos!
Minha primeira dúvida aqui, então vou tentar trazer mais informações, e me perdoe se não for muito claro.
Estou usando a base ‘adults’.
Criei minha recipe conforme o código abaixo:
adult_receita ← recipe(resposta ~ ., data = adult_train) %>%
step_rm(id, native_country) %>%
step_unknown(-all_numeric()) %>%
step_impute_mode(workclass, occupation) %>%
step_novel(all_nominal(), -all_outcomes()) %>%
step_log(all_numeric()) %>%
step_normalize(all_numeric()) %>%
step_zv(all_predictors()) %>%
step_dummy(all_nominal(), -all_outcomes())
Encontrei os hiperparâmetros:
adult_xgb_model ← boost_tree(
mtry = adult_select_best$mtry,
trees = adult_select_best$trees,
min_n = adult_select_best$min_n,
tree_depth = adult_select_best$tree_depth,
loss_reduction = adult_select_best$loss_reduction,
learn_rate = adult_select_best$learn_rate,
sample_size = adult_select_best$sample_size
) %>%
set_mode(“classification”) %>%
set_engine(“xgboost”)
O worflow está assim:
adult_wf ← workflow() %>%
add_model(adult_xgb_model) %>%
add_recipe(adult_receita)
adult_last_fit ← adult_wf %>%
last_fit(
split = adult_initial_split,
control = control_grid(save_pred = TRUE, verbose = FALSE, allow_par = TRUE),
metrics = metric_set(roc_auc)
)
Então finalizei o worflow:
adult_xgb_best_params ← select_best(adult_tune_grid, “roc_auc”)
adult_wf ← adult_wf %>% finalize_workflow(adult_xgb_best_params)
E construí o modelo final:
adult_modelo_final ← adult_wf %>% fit(adult)
Então, quis passar uma nova base de dados nesse modelo, chamada adult_val e deixar apenas o id e uma coluna com as probabilidades, conforme o código abaixo:
adult_val_sumbissao ← adult_val %>%
mutate(
more_than_50k = predict(adult_modelo_final, new_data = adult_val, type = “prob”)$.pred_>50K
) %>%
select(id, more_than_50k)
Então, o erro do post original acontece.