基于协同过滤算法的推荐
2019独角兽企业重金招聘Python工程师标准>>>
基于协同过滤算法的推荐
(本实验选用数据为真实电商脱敏数据,仅用于学习,请勿商用)
数据挖掘的一个经典案例就是尿布与啤酒的例子。尿布与啤酒看似毫不相关的两种产品,但是当超市将两种产品放到相邻货架销售的时候,会大大提高两者销量。很多时候看似不相关的两种产品,却会存在这某种神秘的隐含关系,获取这种关系将会对提高销售额起到推动作用,然而有时这种关联是很难通过经验分析得到的。这时候我们需要借助数据挖掘中的常见算法-协同过滤来实现。这种算法可以帮助我们挖掘人与人以及商品与商品的关联关系。
协同过滤算法是一种基于关联规则的算法,以购物行为为例。假设有甲和乙两名用户,有a、b、c三款产品。如果甲和乙都购买了a和b这两种产品,我们可以假定甲和乙有近似的购物品味。当甲购买了产品c而乙还没有购买c的时候,我们就可以把c也推荐给乙。这是一种典型的user-based情况,就是以user的特性做为一种关联。
一、业务场景描述
通过一份7月份前的用户购物行为数据,获取商品的关联关系,对用户7月份之后的购买形成推荐,并评估结果。比如用户甲某在7月份之前买了商品A,商品A与B强相关,我们就在7月份之后推荐了商品B,并探查这次推荐是否命中。
本次实验选用的是PAI-Studio作为实验平台,仅通过拖拽组件就可以快速实现一套基于协同过滤的推荐系统。本实验的数据和完整业务流程已经内置在了PAI首页模板,开箱即用:
二、数据集介绍
数据源:本数据源为天池大赛提供数据,数据按时间分为两份,分别是7月份之前的购买行为数据和7月份之后的。
具体字段如下:
字段名 | 含义 | 类型 | 描述 |
---|---|---|---|
user_id | 用户编号 | string | 购物的用户ID |
item_id | 物品编号 | string | 被购买物品的编号 |
active_type | 购物行为 | string | 0表示点击,1表示购买,2表示收藏,3表示购物车 |
active_date | 购物时间 | string | 购物发生的时间 |
数据截图:
三、数据探索流程
本次实验选用的是PAI-Studio作为实验平台,仅通过拖拽组件就可以快速实现一套基于协同过滤的推荐系统。
实验流程图:
1.协同过滤推荐流程
首先输入的数据源是7月份之前的购物行为数据,通过SQL脚本取出用户的购买行为数据,进入协同过滤组件,这么做的目的是简化流程,因为购买行为对这次实验分析是最有价值的。协同过滤的组件设置中把TopN设置成1,表示每个item返回最相近的item和它的权重。通过购买行为,分析出哪些商品被同一个user购买的可能性最大。设置图如下:
协同过滤结果,表示的是商品的关联性,itemid表示目标商品,similarity字段的冒号左侧表示与目标关联性高的商品,右边表示概率:
比如上图的第一条,itemid1000和item15584的相似度为0.2747133918,相似度越高表示两个物品被同时选择的概率越大。
2.推荐
上述步骤介绍了如何生成强关联商品的对应列表,这里使用了比较简单的推荐规则,比如用户甲某在7月份之前买了商品A,商品A与B强相关,我们就在7月份之后推荐了商品B,并探查这次推荐是否命中。这个步骤是通过下图实现的:
3.结果统计
上面是统计模块,左边的全表统计展示的是根据7月份之前的购物行为生成的推荐列表,去重后一共18065条。右边的统计组件显示一共命中了90条,命中率0.4%左右。
根据上文的统计结果可以看出,本次试验的推荐效果比较一般,原因在如下几方面:
1)首先本文只是针对了业务场景大致介绍了协同过滤推荐的用法。很多针对于购物行为推荐的关键点都没有处理,比如说时间序列,购物行为一定要注意对于时效性的分析,跨度达到几个月的推荐不会有好的效果。其次没有注意推荐商品的属性,本文只考虑了商品的关联性,没有考虑商品是否为高频或者是低频商品,比如说用户A上个月买了个手机,A下个月就不大会继续购买手机,因为手机是低频消费品。
2)基于关联规则的推荐很多时候最好是作为最终推荐结果的补充或者是最基础的推荐系统,真正想提高准确率还是要依靠机器学习算法训练模型的方式,具体方法可以参考泛推荐系列的其它文章。
原文链接
转载于:https://my.oschina.net/u/1464083/blog/2986972
基于协同过滤算法的推荐相关推荐
- 基于协同过滤算法的商品推荐购物电商系统
一.介绍 商品推荐是针对用户面对海量的商品信息而不知从何下手的一种解决方案,它可以根据用户的喜好,年龄,点击量,购买量以及各种购买行为来为用户推荐合适的商品.在本项目中采用的是基于用户的协同过滤的推荐 ...
- 基于协同过滤算法的电影推荐系统设计(二) - ALS算法详解
0 系列文章目录 0.1 基于协同过滤算法的电影推荐系统设计(一) - 项目简介 0.2 基于协同过滤算法的电影推荐系统设计(二) - 推荐系统介绍 ALS是alternating least squ ...
- 毕业设计之基于协同过滤算法的电影推荐系统设计(一) - 项目简介
由于本人今年毕业,为完成毕设特地想着实现一个简单的推荐系统设计,思来想去,小电影不就是很好的切入点嘛! 于是诞生该项目,将会一步步带着大家实现一个自己的电影推荐系统. 1 研究目标 从应用场景来看,基 ...
- 基于协同过滤 算法推荐系统图书推荐猜你喜欢
基于协同过滤 算法推荐系统图书推荐 一 项目介绍 该项目有前台,有后台,前台主要是首页轮播图,最新发布图书,热门图书,图书总量,图书收藏量,用户注册量,图书分类,图书搜索,图书分页列表,图书详情,图书 ...
- 旅游推荐平台|酒店推荐平台|基于协同过滤算法实现旅游酒店推荐系统
作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路 关注作者有好处 ...
- 基于协同过滤算法和深度学习的音乐推荐
基于协同过滤算法和深度学习的音乐推荐 协同过滤 音乐推荐 深度学习 音乐检索 文章目录 基于协同过滤算法和深度学习的音乐推荐 Github 地址 微信小程序版实现 介绍 参考项目 技术栈 Docker ...
- 【机器学习项目实战】Python基于协同过滤算法进行电子商务网站用户行为分析及服务智能推荐
说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取. 1.项目背景 电子商务网站数量迅速上升,将电子商务网站浏览者变为实际消费者,满 ...
- Python推荐系统学习笔记(3)基于协同过滤的个性化推荐算法实战---ItemCF算法(下)
本文在 Python推荐系统学习笔记(2)基于协同过滤的个性化推荐算法实战---ItemCF算法 一文的基础上,对其基本的ItemCF算法做出改进. 一.相关概念 1.ItemCF中,基于行为(喜好) ...
- Python推荐系统学习笔记(5)基于协同过滤的个性化推荐算法实战---UserCF算法(下)
本文在 Python推荐系统学习笔记(4)基于协同过滤的个性化推荐算法实战---UserCF算法(上) 一文的基础上,对其基本的UserCF算法做出改进. 一.相关概念 1.UserCF中,基于行为( ...
最新文章
- OpenCV捕获视频和摄像头
- SAP系统工具栏中Back Exit 按钮差别?
- 无法连接到远程的SQL SERVER2000
- java 拼接html_程序员用1.5小时写出的Java代码,让同事瞠目结舌!直呼优秀
- java闰年的年份,Java案例-判断给定年份是闰年
- C# WebApi POST 提交
- [算法][二分查找][排除法]
- 检查和变异可查询表达式树
- oracle给表赋清空权限,oracle建表赋权限
- html5 js阻塞加载,js无阻塞加载和defer、async详解_白峰_前端开发者
- oracle stream参数,oracle stream实验(双向复制)
- Java数据结构与算法(3) - ch04栈(栈和转置)
- 怎么用计算机划因果图,计算机软考考试必备知识点:鱼骨图法
- 分布式链路追踪opentracing-go jaeger小示例
- js 翻转表格(行列互换)
- linux安装gz软件,安装tar.gz软件包
- 爬取中国天气网的天气预报,可视化展示看着就是爽【python爬虫入门进阶】(06)
- 转杨毅:火箭——自助者天助
- 基于单片机的智能健康监护仪的设计(心电、心音、体温、脉搏、血压采集)
- php 生成斜体字,JavaScript italics方法入门实例(把字符串显示为斜体)
热门文章
- 5G最完整的PPT教材
- 百度CTO王海峰:百度Paddle已支持超过70个主流的模型
- SAP MM 公司间STO里交货单PGI之后自动触发内向交货单功能的实现
- 中文短文本相似度:WMD
- SAP WM 业务部门Unplanned工单消耗导致WM层面单据异常问题之分析
- 为何生命进化的方向是衰老,而不是永生?
- 伦敦大学学院、UC伯克利联手,撰文综述深度强化学习泛化研究
- 2021世界人工智能大会最高奖项——卓越人工智能引领者奖(Super AI Leader,简称SAIL奖)在大会开幕式揭晓...
- AI+视频分析:实时监测无处不在的安全风险
- 全球43亿IPv4地址正式耗尽,IPv6才是物联网的菜