在 R 中使用 tidymodels 建模
David Svancer
Data Scientist
表示特征或分组的数据
示例
公司部门
母语
车型
建模前需将名义型数据转换为数值型 独热编码(One-Hot)
哑变量编码
recipes 包默认采用
名义型自变量——lead_source 与 us_location
leads_training
# A tibble: 996 x 7
purchased total_visits total_time pages_per_visit total_clicks lead_source us_location
<fct> <dbl> <dbl> <dbl> <dbl> <fct> <fct>
1 yes 7 1148 7 59 direct_traffic west
2 no 5 228 2.5 25 email southeast
3 no 7 481 2.33 21 organic_search west
4 no 4 177 4 37 direct_traffic west
5 no 2 1273 2 26 email midwest
# ... with 991 more rows
step_dummy() 函数
recipe(purchased ~ ., data = leads_training) %>%step_dummy(lead_source, us_location) %>%prep(training = leads_training) %>%bake(new_data = leads_test)
# A tibble: 332 x 12
total_visits ... lead_source_email lead_source_organic_search lead_source_direct_traffic us_location_southeast ... us_location_west
<dbl> ... <dbl> <dbl> <dbl> <dbl> <dbl>
1 8 ... 0 0 1 0 1
2 4 ... 0 0 1 0 0
3 3 ... 0 1 0 0 1
4 2 ... 1 0 0 0 0
5 9 ... 0 0 1 0 1
# ... with 327 more rows
使用 all_nominal() 与 all_outcomes() 按列类型选择
-all_outcomes() 排除名义型因变量 purchasedrecipe(purchased ~ ., data = leads_training) %>%step_dummy(all_nominal(), -all_outcomes()) %>%prep(training = leads_training) %>%bake(new_data = leads_test)
# A tibble: 332 x 12
total_visits ... lead_source_email lead_source_organic_search lead_source_direct_traffic ... us_location_west
<dbl> ... <dbl> <dbl> <dbl> <dbl>
1 8 ... 0 0 1 1
2 4 ... 0 0 1 0
3 3 ... 0 1 0 1
4 2 ... 1 0 0 0
5 9 ... 0 0 1 1
# ... with 327 more rows
R 中的建模引擎
step_dummy() 预处理
recipes 包提供标准化方法来准备名义型自变量以用于建模
在 R 中使用 tidymodels 建模