1

我一直在测试示例代码http://spark.apache.org/docs/latest/mllib-collaborative-filtering.html#explicit-vs-implicit-feedback与我自己的数据。ALS.trainImplicit()的alpha参数是否可以大于1?

当我把阿尔法大于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阿尔法的限制?

回答

4

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

+0

谢谢。这工作 – user1340048

相关问题