前几天在一次采访中,我被问到我将使用什么数据结构来保存经过训练的逻辑回归模型,我有点不知所措。我要求一些澄清,但除了重述问题之外没有得到太多信息。我刚才说了一些关于如何使用
sklearn.linear_model.Logistic_Regression
实例化模型对象,然后使用 .fit()
方法来拟合它,此时您可以使用 pickle
/joblib
保存模型。这看起来可能不是正确的答案,但这是我目前能想到的最好的答案。
我熟悉将 PyTorch 模型保存为
state_dict
,这基本上只是 Python dict
,但据我所知,使用 pickle
或 joblib
只需将它们保存为二进制格式,并且我不太确定这是否算作数据结构。 (请注意 - 这个问题并不是特定于 sklearn
甚至是 Python,但这些是我最常使用的工具,所以我默认使用它们。)
经过一些谷歌搜索和挖掘之后,我找不到任何可以回答我的问题的东西。
我的问题是:a)您可以使用什么数据结构来保存经过训练的逻辑回归模型? b)是否有一些我不知道的被广泛接受的方法?难道我的知识有一些差距吗?
如果这更适合交叉验证,请 lmk,我将在那里重新发布它。
有一个名为“预测模型标记语言”(PMML) 的行业标准。 该标准为您提供了两种表示线性模型的数据结构:
RegressionModel
- 对于更简单的模型
GeneralRegressionModel
- 用于无限复杂性模型
包转换 Scikit-Learn 管道(以最终线性模型步骤结束)。线性模型的标准化表示比仅仅捕获“回归表”部分要复杂得多。您还需要对模型模式给出完整且明确的描述(模型的输入和输出是什么),指定其适用范围等。
多年来,不同的人/项目认为 PMML 已经过时(主要是由于其 XML 背景),并开始重新发明自己的方法。效果还不是很好。