pyspark ml推荐-Als推荐
pyspark ml recommendation - All recomendation
嗨,
我是 Spark 的新手,正在尝试使用 ML 推荐。
我的代码
df = sqlContext.createDataFrame(
[(0, 0, 4.0), (0, 1, 2.0), (1, 1, 3.0), (1, 2, 4.0), (2, 1, 1.0), (2, 2, 5.0)],
["user", "item", "rating"])
als = ALS(rank=10, maxIter=5)
model = als.fit(df)
model.userFactors.orderBy("id").collect()
如何为所有用户获得所有电影的2个推荐?
谢谢你的时间。
ml.recommendation.ALSModel
无法直接实现。您可以使用 transform
方法
users = df.select("user").distinct()
items = df.select("item").distinct()
model.transform(users.join(items))
然后过滤结果,但效率极低。据我所知,在这里简单地使用 mllib.recommendation.ALS
会更好:
from pyspark.mllib.recommendation import ALS, Rating
model = ALS.train(df.rdd.map(lambda r: Rating(*r)), 10, 5)
model.recommendProductsForUsers(2)
嗨,
我是 Spark 的新手,正在尝试使用 ML 推荐。
我的代码
df = sqlContext.createDataFrame(
[(0, 0, 4.0), (0, 1, 2.0), (1, 1, 3.0), (1, 2, 4.0), (2, 1, 1.0), (2, 2, 5.0)],
["user", "item", "rating"])
als = ALS(rank=10, maxIter=5)
model = als.fit(df)
model.userFactors.orderBy("id").collect()
如何为所有用户获得所有电影的2个推荐?
谢谢你的时间。
ml.recommendation.ALSModel
无法直接实现。您可以使用 transform
方法
users = df.select("user").distinct()
items = df.select("item").distinct()
model.transform(users.join(items))
然后过滤结果,但效率极低。据我所知,在这里简单地使用 mllib.recommendation.ALS
会更好:
from pyspark.mllib.recommendation import ALS, Rating
model = ALS.train(df.rdd.map(lambda r: Rating(*r)), 10, 5)
model.recommendProductsForUsers(2)