7

我正在尝试使用 python scikit-learn 在我的数据集上应用 NMF。我的数据集包含 0 个值和缺失值。但是 scikit-learn 不允许在数据矩阵中使用 NaN 值。一些帖子说用零替换缺失值。

我的问题是:

  • 如果我用零替换缺失值,算法如何分辨缺失值和实际零值?

  • 是否有任何其他 NMF 实现可以处理缺失值?

  • 或者是否有任何其他矩阵分解算法可以进行缺失值预测?

4

2 回答 2

3

在 scikit-learn github 中有一个关于此的线程和一个可用的版本接缝,但尚未提交给主代码。

https://github.com/scikit-learn/scikit-learn/pull/8474

于 2017-10-25T20:11:28.127 回答
1

SGD 将在这里完成这项工作,但 scikit-learn 没有可用于该任务的。编写自己的可以完成这项工作,但会非常慢,因为不能直接并行化矩阵分解 SGD。检查这里描述的分布式 SGD算法。实施起来并不难,而且可以显着加快速度。

于 2017-03-31T06:52:58.493 回答