数据算法 --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生成有序数据:可以采用之前说的二次排序的方式。

  

  状态序列的生成:

      

 

   采用的策略:

     

  

 

posted @   _Meditation  阅读(383)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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)
点击右上角即可分享
微信分享提示