【问题标题】:is there a way I can store the factorization machine model?有没有办法可以存储分解机器模型?
【发布时间】:2016-10-04 19:33:54
【问题描述】:

我正在使用https://github.com/coreylynch/pyFM 模块来预测移动评级。但是,有没有一种方法可以在训练后存储(我正在使用 django)分解机?因为现在(按照示例),每次重新启动服务器时我都必须重新训练模型。

【问题讨论】:

  • AFAIK,从 sklearn 持久化模型的唯一“支持”方式是 pickle。所以你也可以腌制你的分解机器......
  • 我可以用 pickle 存储它,但是,我无法使用存储的模型进行预测。它只给我零
  • 你能把你的代码贴在某个地方吗?您还可以描述数据集的大小吗? (实例数等)
  • @greeness pyFM 的 github Readme.md 的第一个示例将在 python 2(
  • 我明白了。在FM模型中,学习到的参数在self.wself.v。您是否尝试添加自定义的 serialize() 方法来腌制 wv,我相信这只是浮动列表?同样,我们可以添加一个自定义的 unserialize() 方法来读取wv 并将它们分配给self.wself.v

标签: python django machine-learning artificial-intelligence collaborative-filtering


【解决方案1】:

看看pickle。训练模型后,您可以将 python 对象的表示保存到文件中,并在需要时重新打开它。

【讨论】:

  • 它不起作用。我得到“不能腌制 FM_fast 对象”
  • 是的,我试过了。我没有收到任何错误消息,但是,当我尝试 model.predict 时,我得到了错误的结果。就像从负载预测给我另一个结果(只有零),而不是在不保存和加载的情况下进行预测。
  • @user3799968 你是对的。即使使用 python 3 和 pickle-mode 4 它也会失败(以你描述的方式)。你必须自己调试它,在 pyFMs github 上创建一个问题,或者尝试一些高级的pickler,比如 dill。这肯定是一个可悲的情况!
【解决方案2】:

您正在使用sklearn。如果你的模型不是很大,python 内置的持久化模型-pickle 应该可以工作。有一个例子here

【讨论】:

  • 啊它不起作用我收到错误消息:无法腌制 FM_fast 对象
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-21
  • 2020-11-24
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多