关于python: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 <1中的alpha限制是吗?


除了Pascal后端已经强制执行的限制之外,

PySpark并没有强制执行任何限制,但是类型很重要。这意味着:

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

不同

1
ALS.trainImplicit(ratings, rank, numIterations, alpha=100)

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