Spark的MLLib中的协同过滤,需要一个(int)作为UserID?

2024-05-15 01:17:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Spark的MLLib中使用了隐式协同过滤ALS算法。在

我的数据采用以下格式(第一列是用户,第二列是项目,第三列是隐含的购买):

user_10, item_200, 1

我在处理代码时遇到的问题是,它是否需要使用评级类,它需要以下格式的输入:

^{pr2}$

因此,当我试图创建模型时,我收到一个错误,因为我无法将User和Item的字符串转换为int。有没有其他方法可以避免使用Ratings类或modify,这样就不需要int了?在

from pyspark.mllib.recommendation import ALS, MatrixFactorizationModel, Rating
data = sc.textFile("test.csv")

ratings = data.map(lambda l: l.split(','))\
              .map(lambda l: Rating(l[0], l[1], float(l[2])))

# Build the recommendation model using Alternating Least Squares
rank = 10
numIterations = 10
alpha = 0.01
model = ALS.trainImplicit(ratings, rank, numIterations, alpha)

Tags: lambdaalphamapdatamodel格式sparkint

热门问题