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

时间:2016-03-25 19:58:56

标签: python apache-spark machine-learning pyspark recommendation-engine

我一直在使用我自己的数据在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:调用o629.trainImplicitALSModel时发生错误。   跟踪:py4j.Py4JException:方法trainImplicitALSModel([class   org.apache.spark.api.java.JavaRDD,类java.lang.Integer,类   java.lang.Integer,类java.lang.Double,类java.lang.Integer,   class java.lang.Integer,类java.lang.Boolean,null])没有   存在

PySpark中的alpha限制是否<1?

1 个答案:

答案 0 :(得分:4)

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

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

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

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