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
.
我一直在用我自己的数据测试 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
.