PySpark AttributeError: type object 'ALS' has no attribute 'trainImplicit'
PySpark AttributeError: type object 'ALS' has no attribute 'trainImplicit'
我正在尝试使用 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: type object 'ALS' has no attribute 'trainImplicit'
您正在尝试使用旧的语法,Spark MLLib ALS (which works with RDDs, and not with dataframes) with the new, Spark ML ALS, which indeed doesn't have a trainImplicit
attribute (docs)。
你应该尝试这样的事情:
als = ALS(rank=5, maxIter=5, alpha = 1.0, implicitPrefs=True, seed=0)
model = als.fit(ratings)
前提是您的商品位于名为 item
的列中,您的评分位于 rating
中 - 请查看 docs 了解更多详细信息、参数化选项和示例。
我正在尝试使用 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: type object 'ALS' has no attribute 'trainImplicit'
您正在尝试使用旧的语法,Spark MLLib ALS (which works with RDDs, and not with dataframes) with the new, Spark ML ALS, which indeed doesn't have a trainImplicit
attribute (docs)。
你应该尝试这样的事情:
als = ALS(rank=5, maxIter=5, alpha = 1.0, implicitPrefs=True, seed=0)
model = als.fit(ratings)
前提是您的商品位于名为 item
的列中,您的评分位于 rating
中 - 请查看 docs 了解更多详细信息、参数化选项和示例。