Невозможно установить coldStartStrategy для модели pyspark.mllib.recommendation.ALS - PullRequest
0 голосов
/ 14 апреля 2020

Я использую pyspark (spark 2.4.4) Я пытаюсь использовать параметр coldStartStrategy для модели рекомендаций ALS, но это не работает для меня. Я попробовал это (из документации 2.4.0: https://spark.apache.org/docs/2.4.0/api/python/pyspark.ml.html#pyspark .ml.recommendation.ALS ):

from pyspark.mllib.recommendation import ALS
als = ALS(maxIter=5, regParam=0.01,coldStartStrategy="drop")

Это ошибка, которую я имею:

TypeError: object () не принимает параметров

Я также пытался создать пустой объект, используя установщик следующим образом:

als = ALS()
als.setColdStartStrategy('drop')

Это ошибка, которая У меня есть:

AttributeError: у объекта 'ALS' нет атрибута 'setColdStartStrategy'

Конструктор ALS не принимает никаких параметров, класс ALS имеет только три метода : mor, train и trainImplicit , и никто не принимает параметр coldStartStrategy . Даже в экземпляре класса ALS я перебираю все ее методы, и никто не принимает этот параметр. Я также перехожу к документации искры 2.2.0 (https://spark.apache.org/docs/2.2.0/api/python/pyspark.ml.html#pyspark .ml.recommendation.ALS ) и той же проблеме.

Я также пытался обучить модель и после этого установил Параметр coldStartStrategy для фазы тестирования

model = ALS.train(rdd_train, rank, numIterations)

, но я также не могу найти метод setParams, как упомянуто здесь: https://spark.apache.org/docs/latest/api/python/_modules/pyspark/ml/recommendation.html

1 Ответ

1 голос
/ 15 апреля 2020

Проблема была вызвана импортом, похоже, что модель ALS, импортированная из pyspark.mllib, отличается от ALS, импортированной из pyspark.ml, и изменяя импорт, я исправляю эту ошибку. Вывод: я просто изменяю:

from pyspark.mllib.recommendation import ALS

на

 from pyspark.ml.recommendation import ALS
...