You need to enable JavaScript to run this app. 已安装broom开发版仍无法对LiblineaR类模型对象调用tidy()
优惠活动
大模型
产品
解决方案
定价
更多

已安装broom开发版仍无法对LiblineaR类模型对象调用tidy()

报错原因

broom包未原生实现LiblineaR类对象的tidy适配方法,和是否安装broom开发版本无关,因此直接调用会触发无对应方法的错误。

解决方案

自定义LiblineaR类的S3泛型适配方法即可,操作如下:

  1. 运行自定义方法代码:
# 为LiblineaR对象注册broom兼容的tidy方法
tidy.LiblineaR <- function(x, ...) {
  # 提取模型存储在W槽中的系数向量
  raw_coef <- x$W
  # 若系数无对应特征名(如稀疏文本特征未保留列名),可在此处补充绑定:
  # names(raw_coef) = 训练模型时使用的特征矩阵的列名
  tibble(
    term = names(raw_coef),
    estimate = unname(raw_coef)
  )
}
  1. 运行原有代码即可正常输出结构化结果:
svm_fit %>%
  pull_workflow_fit() %>%
  tidy()
注意事项
  • 文本数据通常使用稀疏矩阵作为输入,需确保传入LiblineaR的特征矩阵保留了正确的列名,否则输出的term列会为空,可手动补充绑定列名后再运行tidy。
  • 若模型包含截距项,LiblineaR默认将截距系数存储在系数向量的最后一位,若特征工程未手动添加截距列,可手动为截距项补充term名,代码参考:names(raw_coef)[length(raw_coef)] = "(Intercept)"。

内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 08:45:00