大部分朋友应该听过“啤酒”和“尿布”的故事——超市分析顾客的商品购买记录,发现“啤酒”和“尿布”经常被一起购买,背后的原因是美国家庭婴儿一般由母亲在家照顾,年轻的父亲到超市购买尿布时会顺便买上自己喜欢的啤酒(暂且不论故事的真实性)。

关联分析可以看做是对多个类别变量做相关性分析,也就是现象(事物)A和现象(事物)B同时出现的频繁程度。比如定义两个事件——A:出现乌云,B:下雨——不考虑事件的先后顺序,从我们的日常生活经验很容易发现,出现乌云的时候,大多数时候都会下雨,也就是说这两个事件是高度关联的。

针对零售购物的关联分析也被称之为购物篮分析(Market Basket Analysis),如上面的“啤酒”和“尿布”的案例。购物篮分析在于发现经常被一起购买的商品组合,对应的业务场景可以是:

  • 优化商品布局,e.g. 超市可以把关联度高的商品摆放在一起,便于顾客一起挑选;

  • 设计促销方案,e.g. 两种关联度高的商品一起搭配购买可以享受价格优惠;

  • 快速商品推荐,通常在电商业务中使用。e.g. 顾客浏览某一商品,页面上会推荐“经常一起购买的产品”或者“90%的顾客也看了如下商品”等规则进行推荐。

注:当当网的图书推荐

关联分析中的关键指标

例如,现在有如下交易数据。

定义X,Y是两个不相交的项目(事物或者现象),那么:

  • 支持度(support)表示X,Y同时出现的概率,公式表示如下

    上述表格中西红柿和鸡蛋同时出现的订单数为3,总订单数为5,那么西红柿->鸡蛋的支持度为3/5.

  • 置信度(confidence)表示发生X的集合中,出现Y的概率,即

    上述表格中西红柿和鸡蛋同时出现的订单数为3,出现西红柿的订单数为4,那么西红柿->鸡蛋的置信度为3/4.

  • 提升度(lift),衡量X,Y之间的相关性,如果lift>1表示两者之间存在关联性(会一起出现);lift=1表示两者之间没有关系(两个事件相互独立);lift<1则表示两者之间可能存在替代性(一方出现,另一方就不出现了)。

    上述表格中总订单数为5,西红柿和鸡蛋同时出现的订单数为3,出现西红柿的订单数为4,出现鸡蛋的订单数为3,那么西红柿->鸡蛋的提升度为.

现在,我们想用关联分析方法来分析近10年来(2010年至今)的国产电影中哪些演员会经常搭档,或者说经常同台演出的演员组合。

第一步,准备数据

我们去豆瓣上抓点数据,目标网址是https://movie.douban.com/tag/#/,可以筛选对应的标签,网页请求返回的数据都是json格式,很容易抓取。

爬虫主体代码如下(headers部分需要配置),单个查询条件下的最大抓取数据量为1W条。

第二步,数据清洗。

注:这里只是进行粗略的清洗,豆瓣对电影的标签可能存在错误。

解析得到的演员信息cast_info是一个列表,查看前5个值,可以看到如下格式的数据:

第三步,关联分析。

先转化成分析要用的数据格式,即一行表示一部电影,列表示演员是否出现(0表示没有出现,1代表出现)。

得到的dataframe如下:

可以看到,列名就是展开的演员名单,其中还有外国演员,需要筛选中文名称的演员,操作如下。

筛选后的数据有9000行左右(电影数),1.3W多列(演员数,也可能有重名的)。

接下来就是见证奇迹的时刻——调用函数来实现关联分析。

这10年来,拍片最多的演员是?

数据如下,古天乐拍戏真勤劳啊,年均产出4部电影。

最高频出现的演员组合都有谁?

结果如下:

想不到啊想不到,居首位的居然是潘长江老师,看看潘老师近10年的作品:

可以发现有个“连续剧电影”《毛驴县令》出了16部,每部都有潘长江和宛琼丹两位演员,这也是上榜的主要原因。

注:《毛驴县令》系列 https://movie.douban.com/subject_search?search_text=%E6%AF%9B%E9%A9%B4%E5%8E%BF%E4%BB%A4&cat=1002&start=0

董卿和朱军组合的出境倒是有点神奇,说好的电影呢?看了数据才知道,豆瓣是把《春节联欢晚会》也打上了“电影”的标签,而主演就是各位主持人(这波操作……),不过我们也顺带发现了这两位主持人可谓是春晚的“黄金搭档”。

查看关联分析的详细指标数据。

得到的数据如下:

注:上表中的leverage和conviction也是衡量关联度的指标。

【星球伙伴招募】

限时招募100个粉丝登录星球,一起学习和成长!

还记得啤酒和尿不湿的故事吗?我用Python带你一起玩玩关联规则!相关推荐

  1. 还记得小时候玩的坦克大战么,用Python就可以轻松实现

    <坦克大战>是由Namco游戏公司开发的一款平面射击游戏,于1985年发售.游戏以坦克战斗及保卫基地为主题,属于策略型联机类. 同时也是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可 ...

  2. 还记得范进中举的故事吗

    脚踏实地 实事求是 用知识让生活更美好 这才是我们学习的核心 要抓住本源

  3. 啤酒和尿不湿?购物篮分析、商品关联分析和关联规则算法都给你搞清楚(上—理论篇)

    不管是不是搞数据分析的,相信应该都听过啤酒尿不湿的故事,说的是美国的沃尔玛超市管理人员分析销售数据时发现了一个令人难以理解的现象:"啤酒"与"尿布湿"这两件看上 ...

  4. 哨兵机器人钢力士_还记得秒杀X战警的哨兵机器人吗?在漫威原著里,X战警更憋屈...

    还记得<X战警:逆转未来>中的哨兵机器人吗?他们出现在这部电影的开场部分,哨兵机器人对X战警造成了非常大的困扰. 在漫威漫画原著里呢,哨兵机器人的历史也颇为复杂,他们的程序设定就是&quo ...

  5. 还记得年少时的梦吗?(文字版)[强烈推荐]

    童年的十大经典...之一 1.烤红薯 香喷喷,甜丝丝,好吃看得见.2毛钱一斤.只是吃多了会打屁.蠢人俗称"勺货" 2.爆米花 一个老头扛着一口葫芦一样的黑锅,走街串巷.将米变成白白 ...

  6. 尿片与啤酒不得不说的故事

    尿片与啤酒不得不说的故事 摘要:尿片与啤酒是数据挖掘的经典传奇,是美国第一大零售商沃尔玛公司发现的消费关联模式,本文通过数据挖掘的一般过程和算法,揭示如何发现了这一经典传奇. 关键词:数据仓库.事务数 ...

  7. 啤酒与尿布的故事可以休矣

    其实到现在我还在怀疑「啤酒和尿布」(Beer and Nappies)故事的真实性.这个故事最开始应该是从一些做商务智能(BI) 的软件厂商那里传出来的,神乎其神.按理说,这个故事应该给超级市场以无限 ...

  8. 还记得《这个杀手不太冷》里的小女孩吗?电影结束后,她的人生简直像是开了挂一样顺

    <这个杀手不太冷>这个电影其实距离现在过去很久了,还是经久不衰.我看的并不早,这部片子是1994年上映的一部电影.熟悉这部电影的人都知道这是一个职业杀手和一个小女孩的感人故事.这也许就是那 ...

  9. 怀旧的外国经典卡通, 进来看看你还记得多少? —— 70.80年代的, 进来留个爪子印 ^_^

    原文地址为: 怀旧的外国经典卡通, 进来看看你还记得多少? -- 70.80年代的, 进来留个爪子印 ^_^ 小神龙俱乐部,虽然不是动画~不过应该有人记得吧~嘿嘿~ 布瑞斯塔警长布瑞斯塔警长有&quo ...

最新文章

  1. WinCE的C#编程,对float型进行四舍五入保留两位小数,小数进行四舍五入操作,Math.Round的应用案例。...
  2. MySQL-通过MaxScale实现读写分离初探
  3. zoj 3547 The Boss on Mars
  4. 3、MySQL 8.0.20在Linux(centos 8)上搭建主从复制
  5. mybatis 处理参数ListString[]
  6. Web Visibilitychange
  7. js与jquery操作
  8. dede搜索页面上某些标签无法使用
  9. mybatis源码学习方式
  10. 论文阅读 || 图像分类系列 —— DenseNet(很详细)
  11. Hadoop大数据原理与应用
  12. html5在线拍照,HTML5整合本地摄像头,实现视屏预览及拍照上传
  13. 分享两款免费的流程图、原型图工具
  14. 人月神话札记:系统设计
  15. Vue实现附件上传功能
  16. String字符串中 intern()方法的理解(重难点)
  17. Win10 C盘修改用户文件夹
  18. 20211218:口罩数据汇总
  19. 文件上传upload-labs靶场通关指南
  20. Github上的开源项目2

热门文章

  1. 天龙八部与珍珑(文/《北京青年报》记者 郭婷婷)
  2. 勒索软件、移动恶意软件攻击将在2020年激增
  3. yum到底是干什么的?
  4. 2017衢州联赛第三题题解
  5. #RunJS# 最少代码的瀑布流实现
  6. c++数独游戏2.1
  7. 惊呆了!北大博士当了城管
  8. word文件限制编辑如何解除
  9. “第七届中国云计算应用论坛”成功召开
  10. window11性能提升 打造高性能