一个模型训练完,就像出差回来还拖着整只行李箱:真正用于预测的可能只是少数参数,训练数据、残差和运行环境却一起存了下来。模型一多,这些“旧行李”就会拖累存储、传输和加载。Marc Becker在R-bloggers介绍的butcher,是tidymodels生态中的R工具,专门移除预测阶段不再需要的模型组件。
文章用包含4601封邮件、57个特征的垃圾邮件任务测试逻辑回归。模型序列化后——也就是写成可保存或传输的文件——约为4.44 MB;经butcher处理后降至2.34 MB,前后预测结果一致。更实际的场景是五折交叉验证:它把数据分成五份,轮流训练五个模型来评估表现。保存的模型总大小由19.19 MB降至10.4 MB,少了约9 MB,性能评估未变。
不过,瘦身不是无损压缩。butcher保留预测所需内容,却可能让summary()、residuals()或fitted()等事后诊断失效或给出错误结果。说白了,它适合已经定型、只负责预测的模型,不适合还要回头分析训练过程的对象。