PySpark AttributeError:类型对象'ALS'没有属性'trainImplicit'

问题描述 投票:0回答:1

我正在尝试使用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'

python machine-learning pyspark apache-spark-mllib apache-spark-ml
1个回答
0
投票

您正在尝试使用旧的,Spark MLLib ALS(适用于RDD,而不适用于数据帧)的语法与新的Spark ML ALS,它确实没有trainImplicit属性(docs)。

你应该尝试类似的东西:

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

如果您的商品位于名为item的列中,并且您的评级位于rating - 请查看docs以获取更多详细信息,参数化选项和示例。

© www.soinside.com 2019 - 2024. All rights reserved.