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

时间:2016-09-07 10:37:09

标签: python scikit-learn recommendation-engine svd matrix-factorization

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

我的问题是:

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

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

  • 或者,如果有其他矩阵因子分解算法可以进行缺失值预测吗?

2 个答案:

答案 0 :(得分:1)

SGD将在这里完成工作,但是scikit-learn没有可以应用于该任务的scikit-learn。编写自己的一个将完成这项工作,但由于无法直接并行化矩阵分解SGD,因此真的慢。 检查描述here分布式SGD 算法。实施起来并不是那么困难,它会大大加快速度。

答案 1 :(得分:1)

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

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