除此以外,关联规则挖掘还经常被用于:
• 电信套餐的捆绑销售
• 歌曲推荐或者视频的“猜你喜欢”
• 电商的产品推荐
• 财务的归因分析
最近参加了一些学生的创新创业活动,令人印象深刻的是,他们的脑海中总能迸发出无穷的创意。受此启发,我想着尽快把这部分的内容整理出来,希望能够对大家在商业模式的选择上有所帮助。
先了解几个相关的概念:
• 关联(association):两个或多个变量的取值之间存在某种规律性。
• 关联规则(associationrule):指在同一个事件中出现的不同项的相关性。
• 关联分析(associationanalysis):用于发现隐藏在大型数据集中的令人感兴趣的联系。
• 项和事物:令I={i1, i2, ……,id}是购物篮数据中所有项的集合,而T={t1, t2, ……,tn}是所有事务的集合。
• 项集(itemset):包含0个或者多个项的集合被称为项集。
• 支持度计数:即包含特定项集的事务个数。
关联规则是形如A=>B的蕴含表达式,其中A和B是不相交的项集。下面我们来看三个重要的公式:
• 支持度(support):support(A=>B)=P(A or B)
• 置信度(confidence): confidence(A=>B)=P(B|A)
• 提升度(lift): lift(A=>B)=P(B|A)/P(B)
这里我们不难看出,支持度指的是两个事件同时发生的概率(实践中用频率表示),这个值如果太小,只能认为是偶尔事件,而不能认为是规则,置信度是指条件概率,表示A发生条件下B发生的强度,提升度是一个比值,用来衡量A条件的重要性。
看一个小例子:
下面是一个购物篮清单
这里TID是交易编号,不参与计算,右边ABCDEF分别表示不同的商品,下面两个规则的支持度和置信度分别为:
• A => C (50%, 66.6%)
• C =>A (50%, 100%)
关联规则挖掘的基本过程给定事务的集合T,关联规则发现是指找出支持度大于等于minsup,并且置信度大于等于minconf的所有规则,其中minsup和minconf是对应的支持度和置信度的阈值。由于需要计算每一个可能规则的支持度和置信度,这种方法过高的代价让人望而却步。因此,我们将目标做相应转化为找出所有频繁项集,即发现满足最小支持度阈值的所有项集,这些项集称作频繁项集(frequent itemset),并进一步由频繁项集中提取所有高置信度的规则(受篇幅影响,这部分暂时省略),这些规则称作强规则(strongrule)。下面我们通过算例来实现上面的想法。
小案例:让“R语言”猜猜谁是你喜欢的歌手
这是我在概率论课上的一个案例,目的是帮助学生理解条件概率,于是让学生每人填写3个以上的华语歌手(呵呵,要是填英语歌手的话,“事物”太多,而学生有限,这样结果会不好)。于是,同学们填出来的结果是这样的:
为了计算歌手之间的相关规则,我们可以调用R语言的arules包来进行计算,代码如下:
##### code start #####
# 加载包并读入数据
# 将数据转换为arules关联规则方法apriori 可以处理的数据形式.交易数据
# 查看一下数据
# 使用apriori函数生成关联规则
####apriori函数说明
#apriori(data, parameter = NULL, appearance = NULL, control = NULL)
#data:数据
#parameter:设置参数,默认情况下parameter=list(supp=0.1,conf=0.8,maxlen=10,minlen=1,target=”rules”)
#supp: 支持度(support)
#conf: 置信度(confidence)
#maxlen,minlen: 每个项集所含项数的最大最小值
#target:“rules”或“frequent itemsets”(输出关联规则/频繁项集)
#apperence: 对先决条件X(lhs),关联结果Y(rhs)中具体包含哪些项进行限制,如:设置lhs=beer,将仅输出lhs含有beer这一项的关联规则。默认情况下,所有项都将无限制出现。
#control:控制函数性能,如可以设定对项集进行升序sort=1或降序sort=-1排序,是否向使用者报告进程(verbose=F/T)
inspect(rules.pruned)
上述代码输出如下:
结果说明:
以No1为例,弦子、张韶涵和BY2 同时被喜欢的概率为1.7%(学生人数有限的原因),喜欢弦子, 张韶涵的同学会喜欢BY2的概率为100%,该规则的提升度为56.5。因此,如果有人在音乐平台上听了弦子和张韶涵的歌,那就放心的把BY2推荐给他吧!!
值得注意的是,陈奕迅真的是万人迷,居然有9位歌手能够指向他,好吧故事结束了,你也动手试试吧!!
~BY CDA傅老师
PS: R是一种用于分析数据的领域特定语言。如果你之前未接触过专业的分析软件,那么R是不错的选择。
【好课推荐】- CDA LEVEL I业务数据分析师-R语言
一、课程信息
时间:2018年3月24日~4月15日
地点:北京面授&全国直播
授课安排:现场班6900元,远程班4900元
(1) 授课方式:面授直播两种形式,中文多媒体互动式授课方式
(2)授课时间:上午9:00-12:00,下午13:30-16:30,16:30-17:00(答疑)
(3)学习期限:现场与视频结合,长期学习加练习答疑。
二、课程大纲
第一阶段:数据分析概念与R编程
第二阶段:数理统计与SQL数据库
第三阶段:数理统计与数据可视化
第四阶段:统计推断与精益管理
第五阶段:市场分析方法与模式识别模型
第六阶段:客户分析方法与分类模型
第七阶段:时间序列与综合案例
第八阶段:综合案例分析
第九阶段:[线上选修]Mysql数据库基础知识(一周)
第十阶段:[线上选修]Tableau数据可视化(一周)
如果你有R语言统计分析和业务分析的基础,对R数据挖掘和模型的知识有兴趣,也欢迎报名参加R数据挖掘的课程:
http://www.cda.cn/kecheng/31.html
1级2级连报更有8折优惠!
三、报名流程
1. 在线填写报名信息
(北京&远程)
2. 给予反馈,确认报名信息
3. 网上缴费
4. 开课前一周发送电子版课件和教室路线图
四、课程讲师
杨柳
CDA数据分析研究院讲师/经济学博士
2014年8月毕业于美国纽约州立大学,现任教于南京大学商学院产业经济学系。研究方向为计量经济理论和经济预测。长期从事R语言开发及其在计量经济学中的应用研究,积累了丰富的编程经验。主持并参与多项金融和宏观经济的课题项目,对如何应用R语言进行数据分析和挖掘有深刻的认识和独到的见解。
常国珍
CDA数据分析师讲师/北京大学商学博士
曾就职于亚信科技商业运营咨询部、方正国际金融事业部、德勤管理咨询信息技术系统咨询部,多家金融信息部门和金融高科技公司数据分析顾问。主要从事征信数据集与信用风险建模、客户价值提升等项目。擅长将基于个体行为分析的微观经济学研究范式与量化模型向结合的客户终身价值建模。
五、课程优惠
1. 全日制在读学生8折优惠(需提供学生证件证明);
2. 参加过论坛其他现场班老学员9折优惠;
3. 同一单位三人及以上9折优惠,五人及以上8折优惠;
4. 同时报名参加LEVELⅠ和LEVEL Ⅱ享受8折优惠。
联系我们
课程顾问:
陈老师18010006628(微信)
邮箱:chenwenjing@pinggu.org