我正在尝试使用python scikit-learn在我的数据集上应用NMF。我的数据集包含0个值和缺失值。但scikit-learn不允许数据矩阵中的NaN值。有些帖子说用零替换缺失值。
我的问题是:
在scikit-learn github中有一个关于这个的线程,并且版本接缝可用但尚未提交给主代码。
SGD将在这里完成工作,但scikit-learn没有可以应用于该任务的scikit-learn。编写自己的一个将完成这项工作,但由于无法直接并行化矩阵分解SGD,因此会非常缓慢。检查分布式SGD算法描述here。它实现起来并不困难,它可以显着加快速度。