tidymodel多分类任务:字符型结果变量转因子的方法
解决tidymodel多分类任务中字符型因变量的类型错误问题
tidymodel的分类模型要求因变量必须是**因子(factor)**类型,而你的diagnosis是字符型,这就是报错的核心原因。以下两种方法可以快速解决这个问题:
方法一:提前转换训练集的因变量类型
用dplyr包的mutate()函数将字符型的diagnosis转换为因子,之后再训练模型:library(dplyr) # 更新训练集的diagnosis字段类型 train <- train %>% mutate(diagnosis = factor(diagnosis)) # 重新运行模型代码 boost_tree(trees=50) %>% set_engine("xgboost") %>% set_mode("classification") %>% fit(diagnosis ~ ., data=train)方法二:在模型公式中直接转换
如果不想修改原训练集的数据,可以在fit()的公式里直接用factor()包裹因变量,临时完成类型转换:boost_tree(trees=50) %>% set_engine("xgboost") %>% set_mode("classification") %>% fit(factor(diagnosis) ~ ., data=train)
额外说明
如果需要固定因子的类别顺序(比如后续模型评估、可视化时保持类别顺序一致),可以在factor()中指定levels参数:
# 示例:指定CD、UC、IBS的顺序 factor(diagnosis, levels = c("CD", "UC", "IBS"))
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
相关产品推荐

