数据算法 --hadoop/spark数据处理技巧 --(9.基于内容的电影推荐 10. 使用马尔科夫模型的智能邮件营销)
九。基于内容的电影推荐
在基于内容的推荐系统中,我们得到的关于内容的信息越多,算法就会越复杂(设计的变量更多),不过推荐也会更准确,更合理。
本次基于评分,提供一个3阶段的MR解决方案来实现电影推荐。
1.找出各个电影的评分人总数
2.对于每个电影对A和B,找出所有同时对A和B评分的人。
3.找出每两个相关电影之间的关联。在这个阶段,我使用3个不同的关联度算法(pearson,cosine,jaccard)一般要根据具体的数据需求来选择关联度算法。
数据的输入格式:
第一阶段转化完之后:
经过MR阶段2的map阶段后:
经过排序和洗牌之后的输出:
在经过MR阶段2的reduce()后:
第三阶段MR的map阶段的输出:
第三阶段MR的reduce的输入:
reduce代码:
spark的基本步骤:
1.导入所需要的类和接口;
2.处理输入参数;
3.创建一个spark上下文对象;
4.读取hdfs文件并创建第一个RDD;
5.找出谁曾对这个电影评分;
6.按movie对moviesRDD分组;
7.找出每个电影的评分人数,然后创建(K,V)为usersRDD = <K=user,V=<movie,rating,numberofRaters>>
8.将usersRDD与自身连接,找出所有(movie1,movie2)对 joinedRDD = userRDD.join(userRDD) joinedRDD= (user,T2((m1,r1,n1),(m2,r2,n2)))
9.删除重复的(movie1,movie2)对;
10生成所有的(movie1,movie2)组合。
11.按键(movie1,movie2)对moviePairs分组
12计算每个(movie1,movie2)对的关联度
十。使用马尔科夫模型的智能营销
先说说马尔科夫:
使用马尔科夫的智能营销的大致流程:
其中使用MR生成有序数据:可以采用之前说的二次排序的方式。
状态序列的生成:
采用的策略:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)