ALS.trainImplicit() 的 alpha 参数可以大于 1 吗?

Can the alpha parameter of the ALS.trainImplicit() be greater than 1?

我一直在用我自己的数据测试 http://spark.apache.org/docs/latest/mllib-collaborative-filtering.html#explicit-vs-implicit-feedback 的示例代码。

当我将 alpha 设置为大于 1 时,正如

上的原始论文所建议的那样

http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4781121

我收到错误

Py4JError: An error occurred while calling o629.trainImplicitALSModel. Trace: py4j.Py4JException: Method trainImplicitALSModel([class org.apache.spark.api.java.JavaRDD, class java.lang.Integer, class java.lang.Integer, class java.lang.Double, class java.lang.Integer, class java.lang.Integer, class java.lang.Boolean, null]) does not exist

PySpark 中的 alpha 限制是否 <1?

PySpark 不强制执行任何超出 Scala 后端已经强制执行的限制,但类型很重要。这意味着:

ALS.trainImplicit(ratings, rank, numIterations, alpha=100.0)

不一样
ALS.trainImplicit(ratings, rank, numIterations, alpha=100)

后一个因类型不匹配而无效。换句话说,类型很重要。 Python float表示为java.lang.Double,Python int表示为java.lang.Integer.