当前课程知识点:R语言数据分析 > 下部:博术 > 第11章 相随相伴、谓之关联 > 11.1 导引
大家好
欢迎来到《R语言数据分析》课程
今天我们的主题是
相随相伴 谓之关联
和大家交流一下
关联规则相关的内容
从今天开始
在前面认识数据的基础之上
我们就开始进入数据分析的核心内容了
也就讲相应的算法模型
虽然说机器学习
数据挖掘的概念出现的比较晚
比如机器学习应该是
上世纪五六十年代才有的概念
而像数据挖掘的话
应该到八九十年代之后才有这个概念
但是相应的一些算法
其实已经有比较长的历史了
我们简单回顾一下
比如说早在1805年就出现了线性回归
1805年是什么概念
那个时候应该是咱们在清朝的时候
清朝的时候
应该嘉庆年间
我查了一下1805年应该是
纪晓岚去世
我们一想
这个已经比较久远了
到1936年的时候
这是线性判别分析
也就是所谓的Fisher判别分析
像我们一个比较经典的算法
近邻法是1951年就提出来了
像这个k-Means聚类方法
是1957年提出来的
逻辑斯蒂Logistic回归
这个非常经典的一个分类算法
是1958年提出来的
像这个树模型
分类与回归数 CART
是1984年提出来的
非常经典的BP神经网络
是1986年提出来的
Apriori
这个是今天我们的主题
是1993年已经提出来了
用于挖掘关联规则
再之后
比如说支持向量机
是1995年提出来的
随机森林这么一个组合学习方法
组合学习其实也是在具体工程应用中非常多
也是在2001年的时候提出来的
当然2006年的时候
提出了现在非常非常火的
深度学习
2016年也有一个里程碑式的事件是什么
AlphaGo 这个下棋的程序 (Go=围棋)
这个下棋的算法战胜了人类
这是我们数据分析的一个简单的历史
当然这个提的也不是特别全
只是将其中一些比较经典的算法
我们简单梳理了一下
今天我们重点讲一下这个关联规则
Apriori算法
提到关联规则的话
有一个故事是必须讲的
是什么
就是啤酒和尿布的故事
它讲大概什么意思
就是消费者在购买尿布的同时
也会顺手买一些啤酒
也就说啤酒和尿布
它们相互之间是有一个关联关系的
啤酒卖得好的时候
尿布也卖得好
尿布卖的好时候啤酒也卖得好
这其实是一个
看似比较简单的一个关联关系
但其实里面也是
听起来至少正常人理解里面
是有点匪夷所思的
为什么
因为啤酒是什么
一般都是成年人喝的
尿布 小孩用的
我们肯定不能说这个小孩
在很早很早以前就开始喝啤酒了
或者说某个成人喝啤酒喝太多
以致于需要用尿布
都不大现实
但是确实通过一些关联规则的算法
挖出了这一些令人新奇的
一些关联关系
当然具体这个故事有好几个版本
我们看一看
第一个版本是什么
这个故事是发生在沃尔玛
它是在美国
在一个夏季 管理者发现
这个婴儿尿布和啤酒的销量
次第增长
什么意思
就啤酒的(销量)增加的时候
尿布(销量)也跟着增加
尿布(销量)增加的时候啤酒(销量)也增加
当然对一般的那个商店的话
可能就忽略这么一个现象
但是说沃尔玛的这个管理者
没有轻易放过这个现象
并且他们专门派人来盯着
进行24小时的全天候的观察
发现什么
原来购买这两种产品的顾客一般都是
年龄在25到35周岁的青年男子
由于孩子尚在哺乳期
所以每天下班的时候
他们都会奉他们太太之命
去购买小孩的纸尿裤
顺手带回几瓶啤酒自己喝
这个时候我们就把啤酒和尿布联系起来了
这是故事的第一个版本
故事第二个版本
这个主角依然是沃尔玛
情节也大致相同
无非是这个地点变了
变成德国
地点在德国的话
这个心理学家就有一个新的说法了
他有一个煞有介事的一个解释
说什么
德国是一个大男子主义盛行的国家
男人要面子
即便我是要去买这个尿布
但是他总觉得
一个大男人跑进去买尿布的话
觉得面子上挂不住
一定要拎一箱啤酒
让别人以为我是去买啤酒
顺手买了尿布
这是我们这个啤酒和尿布的第二个版本
第三个版本是什么
也是一个所谓的最可信的版本
也是经过一定的考证
说这个故事最可信的版本发生在什么
一家名为奥斯科的一个杂货店里
不再是沃尔玛了
然后这里面确实它的数据分析人员
他模模糊糊地记得
曾经发现过纸尿裤和啤酒之间
它们之间的销量有一定的关系
但是他们并没有说形成一个
啤酒和尿布的一个所谓的关联关系
或者说一个正式的销售的商业的规则
也没有将纸尿裤和啤酒放在一起陈列过
好 我们看了这个故事的三个版本
基本上可以得出一个结论是什么
关于这个啤酒和尿布的故事
基本上都是杜撰的
可能只是一个噱头而已
我们可以看看真实生活中
我们超市里面的啤酒和尿布
是不是真的放在一起
网友他大概调查了一下
比如说一些易初莲花的
包括我们前面那个故事
两个版本里面的主角沃尔玛
包括我们其他一些超市
比如家乐福 京客隆等等
是不是真是这样
后来发现怎么样
这两个商品的距离其实都是比较远
所以
在现实生活中
啤酒和尿布其实并没有把它放在一起
但是啤酒和尿布的故事
它确实是广为流传
而且也比较形象比较生动地表明了什么
通过数据 然后挖出一些
意想不到的关联规则
并且用于我们实际的一些业务过程之中
它非常形象生动的表达
如何通过大量的销售记录
来挖一个潜在的关联关系
类似的这种算法
其实在很多场合都有应用
比如
我们在开展学术研究的时候
经常要查一些学术论文
比如说我们现在上EI这个检索系统
假如我们下了某个文章之后
它会怎么样
它会自动推荐
读了这篇文章的读者
还读了另外一些文章
再比如 我们在某个购物网站上
比如说我买了一本
这个叫《爱是唯一的真相:找寻前世今生的灵魂伴侣》
它会怎么样
它会自动推荐另外的一些书
说什么
买了这本书的读者
还买了其他的一些商品
也就是说即便这个啤酒和尿布的故事
不是真实的
但其实这种关联规则
是在非常非常多的场合都有应用的
假如我们作为数据分析人员而言
我如何实现这个算法
就是买了某一个商品之后
我推荐他说
买了这个商品的用户也购买过其他一些商品
那这个算法我们考虑一下
我们可以按下暂停键思考一下
假如我是这个算法设计人员的话
应该怎么设计
我想这里面至少得有两个方面
首先是什么
这两件商品应该是同时出现
而且在历史上同时出现过多次
因为是购买了商品A
也购买商品B的话
那证明什么
这A和B这两个商品
在历史上是同时出现过好多次的
这是第一个方面
就是同时性
另外一个方面是什么
它应该有方向性
这是购买了A的情况之下
然后我才购买B
有这么一个方向性
我购买了一个打印机
然后后面我可能要同时购买
相应的一些打印的A4纸
但是并不能说我(每次)买了A4纸之后
我还要买一个打印机
所以这里面方向性也是需要考虑的
就从算法本身来讲
从这个业务逻辑的角度来讲
这里有两个需要注意的点
第一个是同时性
第二个是方向性
那具体怎么挖
我当然可以把所有的规则
可能规则我都先列出来
然后我再怎么样 我再来找
通过历史记录
我来看究竟哪些规则是频繁出现的
然后作它为一个有效的规则
这当然是一种野蛮搜索的方法
但是野蛮搜索的方法的话
容易带来一个组合爆炸
就是形容这种购买了A商品
同时也购买B商品这种规则的话
它是一个组合爆炸的过程
我们举个例子
比如说现在有两个商品的话
这个超市里面只有两个商品
那这个时候毫无疑问有两条规则
就是A到B 同时还有B到A
这么两条规则
假如有四个商品的话
这里面可能的规则有多少
总共有50个
比如ABCD 4个商品
由A到B A到C
A到D A到BC A到BCD等等等等
假如有十个商品的话
可能的规则数有多少
57002条
我们再往上增加一点
比如说我这个商品数是20个的话
多少 大家看一下
这个时候已经达到多少
我后面用科学记数法写了一下
3.5乘以10的9次方
10的8次方的话已经是上亿了
10的9次方的话
那就是35亿条
就说假如我有20个商品的话
这可能规则就有35亿条
假如我有一百个商品的话
有多少可能规则
这个时候 我们已经不会念了
用科学计数法来写的话
是5.2×10的47次方
所以说我们刚才看到的
无论是我们在浏览
某个期刊里面的相应的一些文章
它来推荐
还是说我们购物的网站里面来做推荐
我们都不可能用这个野蛮搜索的方法
得出我们想要的规则
因为这个组合爆炸这个量
完全是超出我们的处理能力的
这时候怎么办
后面我们要继续讲一个算法
来避免这种野蛮搜索
这个算法名字是什么
Apriori
这是我们接下来的一个主角
具体的算法我们在接下来的课程
再详细讲解
本次课到此结束
谢谢大家
-第1章 气象万千、数以等观
--第1章 作业
-第2章 所谓学习、归类而已
--第2章 作业
-第3章 格言联璧话学习
--第3章 作业
-第4章 源于数学、归于工程
--第4章 作业
-讨论题
-第5章 工欲善其事、必先利其器
--第5章 作业
-第6章 基础编程——用别人的包和函数讲述自己的故事
--6.1 编程环境
--6.4 控制流
--第6章 作业
-第7章 数据对象——面向数据对象学习R语言
--第7章 作业
-第8章 人人都爱tidyverse
--第8章 作业
-第9章 最美不过数据框
--第9章 作业
-第10章 观数以形
--第10章 作业
-第11章 相随相伴、谓之关联
--11.1 导引
--第11章 作业
-第12章 既是世间法、自当有分别
--12.1 导引
--第12章 作业
-第13章 方以类聚、物以群分
--13.1 导引
--第13章 作业
-第14章 庐山烟雨浙江潮
--第14章 作业