如何为ALS Implicit = true

时间:2019-04-11 17:54:48

标签: recommendation-engine apache-spark-ml

在我的训练数据集上执行fit()时,我得到一个Spark异常。 例外情况下,没有足够的信息让我破译该问题。

我遵循了一个使用该公式找到的示例(体重-体重平均值)/体重标准偏差。该值放在名为weight_scaled的列中。 这是我的训练数据集的一部分:

+ ------ + ------- + ------- + ----------------- + ----- ------------ + ------------------- + | UserId | VideoId |重量| mean_weight | stddev_weight |体重秤| + ------ + ------- + ------- + ----------------- + -------- --------- + ------------------- + | 0 | 2 | 163267 | 602429.5707184518 | 345923.7772489472 | -1.2695356595924439 | | 0 | 3 | 794447 | 602429.5707184518 | 345923.7772489472 | 0.5550859521962296 | | 1 | 1 | 851589 | 602429.5707184518 | 345923.7772489472 | 0.7202726313381991 | | 2 | 2 | 986385 | 602429.5707184518 | 345923.7772489472 | 1.1099422894114366 | | 2 | 3 | 2461 | 602429.5707184518 | 345923.7772489472 | -1.734395292193745 |

我的代码是: ALS ALS =新ALS()   .setMaxIter(5)   .setRegParam(0.01)   .setUserCol(“ UserId”)   .setItemCol(“ VideoId”)   .setImplicitPrefs(true)   .setRatingCol(“ weight_scaled”);

ALSModel模型= als.fit(训练);

例外是:

org.apache.spark.ml.optim.SingularMatrixException:LAPACK.dppsv返回7,因为A不是正定的。 A是从奇异矩阵(例如共线列值)派生的吗?     在org.apache.spark.mllib.linalg.CholeskyDecomposition $ .checkReturnValue(CholeskyDecomposition.scala:65)〜[spark-mllib_2.11-2.3.1.jar:2.3.1]

0 个答案:

没有答案