R构建Ridge回归模型时出现unused argument 'casual'错误如何解决
错误原因与修正方案
1 报错直接诱因:contains()函数用法错误
tidymodels内置的特征选择器contains()单次仅支持传入1个匹配字符串,你的代码中一次性传入了4个独立字符串,多余参数无法被识别,触发了Error: unused argument ("casual")报错。
如果需要匹配多个关键词,需要将多个contains()调用放在c()中组合,正确写法为:step_rm(c(contains("instant"), contains("dteday"), contains("registered"), contains("casual")))
2 其他逻辑错误
step_dummy(count)完全多余:step_dummy()的作用是将分类自变量转换为独热编码,count是你Ridge回归任务的数值型因变量,不需要做独热编码,这行代码直接删除即可。- 存在语法不规范问题:你将
recipe函数名与参数拆分为两行、管道符%>%单独放在下一行开头,容易被R识别为语句中断,建议调整书写格式,管道符放在上一行末尾、函数与参数连写。
修正后完整代码
str(bike) # 修正后的recipe bike_recipe = recipe(count~season+mnth+hr+holiday+weekday+workingday+weathersit+temp+atemp+hum+windspeed, data = bike) %>% # 修正contains的写法 step_rm(c(contains("instant"), contains("dteday"), contains("registered"), contains("casual"))) %>% # 删除了错误的step_dummy(count)行 step_center(all_numeric()) %>% step_scale(all_numeric()) Bike_Ridge_Model = linear_reg(mixture = 0) %>% set_engine("glmnet") ridge_wflow = workflow() %>% add_model(Bike_Ridge_Model) %>% add_recipe(bike_recipe) bike_ridge_fit = fit(ridge_wflow, data = bike) summary(bike_ridge_fit$fit$fit$fit)
内容的提问来源于stack exchange,提问作者zack
相关产品推荐
相关产品推荐

