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

相關問題