PySpark AttributeError: тип объекта «ALS» не имеет атрибута «trainImplicit» - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь обучить свой набор данных, используя ALS, чтобы найти скрытые факторы.Мой набор данных имеет неявный рейтинг.

В глубине моя база данных состоит из трех столбцов Пользователь, Элемент (Хранилища) и Рейтинг (Количество звезд (Скрытый рейтинг)):

from pyspark.ml.recommendation import ALS

lines = spark.read.text("Dataset.csv").rdd
parts = lines.map(lambda row: row.value.split(","))

ratingsRDD = parts.map(lambda p: Row(userId=int(p[1]),repoId=int(p[2]),repoCount=float(p[3])))
ratings = spark.createDataFrame(ratingsRDD)

model = ALS.trainImplicit(ratings, rank=5,lambda_=0.01, alpha = 1.0, iterations =5)

Я получаю эту ошибку:

AttributeError: тип объекта «ALS» не имеет атрибута «trainImplicit»

1 Ответ

0 голосов
/ 09 марта 2019

Вы пытаетесь использовать синтаксис из старого Spark MLLib ALS (который работает с RDD, а не с фреймами данных) с новым Spark ML ALS, который действительно не имеет trainImplicit атрибут ( документы ).

Вы должны попробовать что-то вроде:

als = ALS(rank=5, maxIter=5, alpha = 1.0, implicitPrefs=True, seed=0)
model = als.fit(ratings)

при условии, что ваши элементы находятся в столбце с именем item и ваши рейтинги вrating - проверьте документы для получения дополнительной информации, параметров параметрирования и примеров.

...