答案 0 :(得分:4)
Apache Spark提供了一个在ALS上强制非负约束的选项。
因此,要删除这些负值,您只需要设置:
<强>的Python:强>
nonnegative=True
Scala:
setNonnegative(true)
创建ALS
模型时,即:
>>> als = ALS(rank=10, maxIter=5, seed=0, nonnegative=True)
<强>非负矩阵因子强>(NMF或NNMF),也称为非负矩阵近似是在多变量分析和线性代数的一组算法,其中一个矩阵的 V 强>被分解为(通常)两个矩阵 W 和 H ,其中属性,即所有三个矩阵都具有非负元素 [Ref。 Wikipedia]。
如果您想了解更多有关NMF的信息,我建议您阅读以下文章:
对于NaN
值,通常是由于分割数据集导致看不见的项目或用户(如果其中一个不存在于训练集中)以及测试集中存在的问题。如果您通过验证培训,也可能发生这种情况。就此而言,有两个标记为已解决的JIRA为2.2:
最新版本允许您设置创建模型时使用的冷启动策略。