1

J'ai testé l'exemple de code au http://spark.apache.org/docs/latest/mllib-collaborative-filtering.html#explicit-vs-implicit-feedback avec mes propres données en place.Le paramètre alpha de ALS.trainImplicit() peut-il être supérieur à 1?

Quand je mets alpha supérieur à 1, comme le suggère le document source à

http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4781121

Je reçois l'erreur

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

est la limite pour l'alpha dans PySpark < 1?

Répondre

4

PySpark n'applique aucune limitation au-delà de celles qui sont déjà appliquées par le moteur dorsal Scala, mais les types sont importants. Cela signifie que:

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

est pas le même que

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

avec celui-ci étant non valide en raison d'incompatibilité de type. En d'autres termes, les types sont importants. Python float en tant que java.lang.Double, Python int est représenté en tant que java.lang.Integer.

+0

Merci. Cela a fonctionné – user1340048