十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

equatiomatic如何提取Tidymodels工作流公式:workflows与model_fit对象实战指南

equatiomatic如何提取Tidymodels工作流公式:workflows与model_fit对象实战指南 equatiomatic如何提取Tidymodels工作流公式workflows与model_fit对象实战指南【免费下载链接】equatiomaticConvert models to LaTeX equations项目地址: https://gitcode.com/gh_mirrors/eq/equatiomaticequatiomatic是一个 R 语言包能将任意拟合好的模型对象一键转换为 LaTeX 数学公式。它的核心函数extract_eq()不仅支持lm、glm等传统模型还兼容Tidymodels生态中的model_fit与workflow对象——这意味着用 parsnip 一步拟合、或用 recipes workflows 组合训练的模型都能直接提取出可粘贴进论文报告的回归方程彻底告别手动书写 LaTeX 的痛苦。 为什么需要公式提取做模型分析时汇报环节几乎总是要展示模型方程长什么样。手工把系数、希腊字母、变量名逐字敲进 LaTeX 既慢又容易出错。equatiomatic 的思路是读入模型对象 → 解析公式与系数 → 直接输出渲染好的 LaTeX 代码一行代码搞定。上图展示了 equatiomatic 的基本工作流lm()拟合后调用extract_eq()立刻得到带希腊字母系数的 LaTeX 公式。⚡ 快速上手安装与最小示例先安装 equatiomatic若从源码获取仓库地址为https://gitcode.com/gh_mirrors/eq/equatiomaticinstall.packages(equatiomatic) library(equatiomatic) mod1 - lm(mpg ~ cyl disp, data mtcars) extract_eq(mod1)在 R Markdown 中调用extract_eq()knitr 会自动把公式渲染成真正的数学排版想直接看 LaTeX 源码则用print()包一层。也可以在 RStudio 里用preview_eq()即时预览preview_eq(mod1) 场景一直接提取 model_fit 对象如果你习惯用parsnip一步拟合不经过 workflow得到的model_fit对象同样可以直接喂给extract_eq()。以 cars 数据集为例先用 recipes 做样条变换再拟合线性模型library(recipes) library(parsnip) spline_cars_prepped - recipe(mpg ~ ., data mtcars) | step_ns(disp, deg_free 10) | prep(mtcars) # 用 parsnip 拟合返回 model_fit 对象 lm_fit - linear_reg() | fit(mpg ~ ., data juice(spline_cars_prepped)) # 直接提取公式wrap TRUE 让长公式自动换行 extract_eq(lm_fit, wrap TRUE)当右侧项很多时换行后的效果如下每行默认 4 项 场景二提取 workflows 工作流公式更复杂的场景是把**数据预处理recipes和模型parsnip**打包进一个 workflow用一次fit()完成配方准备 模型估计library(workflows) linear_lm - linear_reg() car_wflow - workflow() | add_recipe(spline_cars) | add_model(linear_lm) # 一次 fit 完成预处理与拟合 wflow_fit - fit(car_wflow, data mtcars) # 从 workflow 拟合结果中提取公式 extract_eq(wflow_fit, wrap TRUE)equatiomatic 在 R/extract_eq.R 中为model_fit和workflow分别实现了专门的 S3 方法它会自动剥开嵌套的fit组件找到内部真正的模型对象再走标准的提取流程。 一个小坑因变量名变成了 ..y经过 recipes 预处理后原始列名可能被重命名公式里因变量会显示为..y而不是mpg。用swap_var_names参数即可手动改回extract_eq(wflow_fit, wrap TRUE, swap_var_names c(..y mpg))这个技巧对任何被工作流重命名列的情况都适用。 常用参数速查让公式更美观extract_eq()提供了不少排版开关Tidymodels 场景下最常用的是这几个参数作用示例wrap TRUE长公式按行自动换行每行默认 4 项terms_per_line每行放几项terms_per_line 6operator_location放行尾还是行首startital_vars TRUE变量名显示为斜体更接近教科书风格use_coefs TRUE用真实数值替代希腊字母适合结果汇报开启ital_vars TRUE后变量名会以斜体呈现⚠️ 注意事项broom.mixed 与模型兼容性贝叶斯/混合模型需要 broom.mixed如果 parsnip 模型用set_engine(stan)拟合提取前必须library(broom.mixed)否则extract_eq()会报错。兼容性取决于 broomequatiomatic 的公式提取底层依赖 broom 系 tidy 接口凡是 broom或 broom.mixed支持的模型类型理论上都能提取不兼容的模型会给出清晰的错误提示而不是静默失败。批量提取把多个模型放进一个命名列表再调用extract_eq()可以一次性得到一组带名称的公式方便模型对比汇报。 延伸资源官方教程vignettes/tidymodels.Rmd本文的 workflow 示例即改编自该文档核心实现R/extract_eq.R 中extract_eq.model_fit与extract_eq.workflow方法想深入了解剥壳逻辑可从这里入手测试用例tests/testthat/ 目录下按模型类型lm、glm、lmer 等组织的完整测试可作为更多模型提取的参考掌握以上内容你就能在 Tidymodels 建模流程的最后用一行代码把模型方程变成漂亮的 LaTeX——写报告、做幻灯片的效率会有质的提升 ✅【免费下载链接】equatiomaticConvert models to LaTeX equations项目地址: https://gitcode.com/gh_mirrors/eq/equatiomatic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表