我在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)
评分需要一个整数,所以我只需要将用户和项目转换为整数。当你创建你的收视率时,做一些改变来做,它应该会起作用。在
相关问题 更多 >
编程相关推荐