随着企业经营水平的提高,对应网站的访问量逐步增加,数据信息也随之大量增长,使得用户面对海量信息时无法快速找到想要的内容,降低了信息使用效率。这时,可以利用相关数据,研究用户兴趣偏好,分析用户的需求和行为,引导用户发现需求信息,将内容准确推荐给用户。
本例通过943名用户对1664部电影的评分数据,构建协同过滤模型,进而推荐电影供用户观看。通过本例,可以了解协同过滤算法在电子商务智能推荐领域的应用方法,帮助用户更加便捷的获取想要的信息,进而提升用户体验、促进推荐转化。
步骤
1、获取数据;
2、数据探索分析;
3、构建智能推荐模型;
4、评估推荐系统模型。
NO.1 获取数据
数据包含943名用户对1664部电影的打分,评分在1-5分之间,超出规定范围的算异常值。
NO.2 数据探索分析
导入的数据共有99416行,3列,第一列为用户id,第二列为电影名字,第三列为打分。
经过基本的数据验证,发现三列数据均存在缺失的情况(取值为空),且根据打分列,发现数据存在异常值(打分结果不在1-5范围内),因此将存在缺失值和异常值的行删除,删除后,数据剩下99392行。同时,为了进行每部电影的打分数据探索分析,将movie列中的电影名转换为列名,转换后,可观察每部电影的评分用户数及分数的基本分布。
NO.3 构建基于物品的协同过滤推荐模型
基于物品的协同过滤模型(ItemCF)通过分析群体用户的历史偏好,找到相似物品,然后根据个体用户的历史行为为其进行推荐,主要分为计算物品间相似度和生成推荐列表两个步骤。ItemCF可以离线计算,从而提高推荐效率,且利用历史行为进行推荐解释,结果更容易信服,但是推荐精度相对有限,且对于用户偏好的变化不敏感,实时推荐能力较弱。关于ItemCF的更多介绍可参考往期文章推荐算法概述。在实际应用时,用户的历史行为包含是否浏览网页、是否购买、是否评论、是否转发点赞等,本例中,仅涉及用户对电影的打分,因此不存在其他的行为。得到的电影相似度矩阵如下:
构建ItemCF模型后,得到用户1.0的推荐清单如下:
NO.4 评估推荐系统模型
模型结果评价主要有三种方式,分别为离线测试、用户调查和在线实验。
离线测试:通过从实际系统中提取数据,采用各种推荐算法并计算各算法的测评指标。该方法不需真实用户参与,但结果与实际结果会存在偏差。
用户调查:利用测试的推荐系统调查真实用户,观察他们的行为并回答相关问题,通过用户行为及反馈判断推荐系统好坏。
在线实验:将推荐系统投入实际应用,通过应用的转化指标评价推荐系统结果。
实现代码
点击原文()后台回复“电影推荐”可得本例数据及代码。
参考内容:
1、《R语言商务数据分析实战》