如何在python scikit NMF中处理缺失值

Zha*_*Tao 5 python recommendation-engine svd scikit-learn matrix-factorization

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

我的问题是:

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

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

  • 或者,如果有任何其他矩阵分解算法可以做缺失值预测?

sil*_*ser 1

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