我一直在测试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?
最佳答案
除了 Scala 后端已经强制执行的限制之外,PySpark 不会强制执行任何限制,但类型很重要。这意味着:
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
。
关于python - ALS.trainImplicit() 的 alpha 参数可以大于 1 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36227111/