首页 > 其他分享 >寒假生活指导20

寒假生活指导20

时间:2024-01-28 18:45:50浏览次数:32  
标签:10 20 推荐 指导 用户 top 寒假 recommendations ID

from pyspark.sql import SparkSession
from pyspark.ml.recommendation import ALS

# 创建SparkSession
spark = SparkSession.builder.appName('RecommendationSystem').getOrCreate()

# 假设我们有用户对产品的评分数据,并且已经加载为一个DataFrame
data = [
    (0, 1, 5.0),
    (0, 2, 3.0),
    (1, 1, 4.0),
    (1, 2, 4.0),
    (2, 1, 3.0),
    (2, 2, 4.0),
    (2, 3, 2.0)
]
ratings_df = spark.createDataFrame(data, ["userId", "movieId", "rating"])

# 定义ALS模型参数
als = ALS(
    userCol="userId",
    itemCol="movieId",
    ratingCol="rating",
    maxIter=5,
    regParam=0.01,
    rank=10
)

# 训练模型
model = als.fit(ratings_df)

# 预测用户对产品的评分
predictions = model.transform(ratings_df)

# 打印预测结果
predictions.show()

# 在实际应用中,你可以用模型来为给定的用户生成推荐列表
# 用户ID为0的推荐产品列表
# 获取用户ID为0的前10个推荐产品
# recommendations_for_user_0 = model.recommendForUser(0, 10)
# recommendations_for_user_0.show()

# 获取对电影ID为1的所有用户的前10个推荐
top_recommendations = model.recommendForAllItems(10)
top_users_for_movie_1 = top_recommendations.filter(top_recommendations.movieId == 1)
top_users_for_movie_1.show()

# 不再需要时,记得停止SparkSession
spark.stop()

代码中提供的Spark ALS(交替最小二乘)推荐系统模型训练和预测流程是正确的。然而,在尝试获取对特定电影ID(这里是1)的所有用户的前10个推荐时,直接使用了recommendForAllItems(10)方法,这会为所有物品生成前10个推荐用户列表。然后过滤出针对电影ID为1的推荐结果。

为了修复并明确实现需求,应该直接针对电影ID为1获取推荐用户列表,而不是先获取所有物品的推荐再进行过滤。以下是修复后的代码:

Python
1# 保持之前的代码不变...
2
3# 获取电影ID为1的前10个推荐用户及其评分
4top_users_for_movie_1 = model.recommendForItem(1, 10)  # 更改为 recommendForItem 方法,并传入电影ID 1
5
6# 打印针对电影ID为1的前10个推荐用户信息
7top_users_for_movie_1.show()
8
9# 不再需要时,记得停止SparkSession
10spark.stop()

标签:10,20,推荐,指导,用户,top,寒假,recommendations,ID
From: https://www.cnblogs.com/syhxx/p/17993129

相关文章

  • HF2020A多功能移动照明系统
    适用范围广泛适用于铁路、水利、电网等抢险救援现场大范围移动照明。结构特性灯具体积小、重量轻,可以实现拖行、手提、背行三种携带方式。灯具底部也可以安装铁轨轮,便于用户在铁轨上作业。 灯头组件由左右两个灯头组成,采用高光效LED光源,照明亮度高,覆盖范围大,使用寿命长;灯头可折叠......
  • THUWC2024 旅游记
    洛谷博客没了之后我都不知道钓鱼博该传哪了。存一下THUPC2024记录:THUPC2024记录羟基计划我爱你(jijidawang,K8He,x383494)上来x383494把M过了.我扫了一遍好像K非常简单就写了,途中K8He秒了C.三发罚时过了K,开始睡觉.感觉会J了.醒了之后开始颓,过一会......
  • 面试简历指导 —— 转岗程序员都有哪些问题?EG3
    这是一个面试指导系列:#咸鱼-简历指导系列第1篇传送门:#面试简历指导——刚毕业大学生前端简历怎么写?EG1第2篇传送门:#面试简历指导——1年工作经验的前端简历怎么写?EG2背景在前篇都介绍了,就不重复了。有人问:怎么最后都好像开始做面试改简历、卖课这种割韭菜的活了??额。。。......
  • 面试简历指导 —— 在“华为”OD工作的困惑?EG4
    这是一个面试指导系列:传送门#面试简历指导——刚毕业大学生前端简历怎么写?EG1#面试简历指导——1年工作经验的前端简历怎么写?EG2#面试简历指导——转岗程序员都有哪些问题?EG3相信很多人在找工作的时候,都被华为OD这个招聘给“打扰”过,他们实在是招的太勤了,但是“铁打的营盘......
  • ATtokiomarine2020E O(rand) 题解
    题目链接点击打开链接题目解法首先,\(S\)一定要是\(T\)的子集先筛出符合条件的\(a_i\),即满足\(S\subseteqa_i\subseteqT\)令\(dif\)为\(T-S\),定义数\(x\)覆盖第\(y\)位为二进制下\(x\)的第\(y\)位为\(1\)现在的问题变成了找到大小\(\lek\)的\(\{a_i\}......
  • winter 2024 第一周周报
    训练内容winter2024day1题解https://www.cnblogs.com/bible-/p/17980600算是考完试后第一场正式训练,练的蓝桥杯,这场不算难打打恢复下状态 winter2024day2题解https://www.cnblogs.com/bible-/p/17983616组队vp了23年新疆那场,6题第三(队友太厉害了qwq),题基本补了。感觉J......
  • (20)Powershell中的特殊运算符
    (20)Powershell中的特殊运算符Powershell中除了常见的算术运算符,赋值运算符,比较运算符,位运算符,逻辑运算符,字符串的拆分和合并运算符,转义字符,还有一些特殊的运算符,这些特殊的运算符往往可以解决一些特殊的问题,比如执行运行命令,更改值的数据类型等。1.&(调用运算符)使用&(......
  • 2024年第一天
    时间稍纵即逝,不知不觉已经来到2024,ageaddoneagain。2023年是煎熬与困难的一年,也是幸运的一年。2023年经历了好多人生的第一次,那些场景不会随着岁月的洗礼而模糊,将会是脑海中最深刻的回忆。2024年,好好对待自己遇到的人,做好一个大男孩该做的事,2023年小结:1.了解了微......
  • 2024最新苹果iOS17.3微信分身详解分享
    微信是目前最流行的社交软件之一,拥有庞大的用户群体。然而,对于一些需要同时使用多个微信账号的用户来说,使用官方版微信就显得有些不方便。iOS分身微信软件可以解决这个问题,它可以让用户在同一台设备上同时登录多个微信账号,从而实现工作生活两不误。iOS分身微信软件的优势iOS......
  • [office] excel2007如何备注
    在我们使用excel录入数据的时候,经常会对一些字或词进行注明,要如何才能添加备注呢。下面让小编为你带来excel2007备注的方法。excel2007备注设置步骤如下:1:我们以“2015年5月酒水进出表”为例,在桌面找到这个表格,用鼠标双击打开这个表,如下图2:打开这个表之后,我们随便举......