赞
踩
1、关联:(Association)
把两个或者两个以上在意义上,有密切联系的项组合在一起
关联规则(Association Rules AR)
用于从大量数据中挖掘出有价值的数据项之间的相关关系
协同过滤(Collaborative Filtering,简称CF)
协同过滤常常被用于分辨某位特定固定可能感兴趣的东西,这些结论来自于对其他相似顾客对哪些产品感兴趣的分析
2、关联规则(Association Rules)
两个不相交的非空集合X、Y,如果有X->Y,就说X->Y是一条关联规则
强度:支持度(support)、自信度(confidence)
效度:提升度(Lift)
3、挖掘定义
给定一个数据集,找出其中所有支持度support>=min_support、自信度
confidece>=min_confidece的关联规则
4、支持度的计算公式
suopport(X->Y)=集合X和集合Y中的项在一条记录中同时出现的次数/数据记录的个数
例如:
support({啤酒}->{尿布})
=啤酒和尿布同时出现的次数/记录数
=3/5=60%
5、自信度(Confidence)
confidence(X->Y)=集合X与集合Y中的项在一条记录中同时出现的次数/集合X出现的个数
例如:
confidence({啤酒}->{尿布})
=啤酒喝尿布同时出现的次数/啤酒出现的次数=3/3=100%
6、自信度
confidence({尿布}->{啤酒})
=啤酒喝尿布同时出现的次数/尿布出现的次数
=3/4
=75%
7、提升度(Lift)
度量规则是否可用的指标,描述的是相对于不用规则,使用规则可以提高多少,提升度大于1 ,规则有效
计算公式
lift({A-B})=confidence({A-B})/supper(B)
例如:
lift({尿布}->{啤酒})
=confidence({尿布}->{啤酒})/support(啤酒)
=0.75/0.6=1.25
8、 计算步骤
01 扫描数据集,统计一级候选集出现的次数
清除不满足条件的候选相集,得到一级项集(例如:出现次数大于2)
02 从一级项集中,组合二级候选相集,统计数据集中他们出现的次数
清除不满足条件的候选相集,得到二级项集
03 从二级项集中,组合三级候选相集,统计数据集中他们出现的次数(小于确定的3次) 停止挖掘
04 将前面得到的项集作为结果返回
9、案例代码
- import pandas
-
- import apyori
-
- from apyori import apriori
-
- data=pandas.read_csv('D:\\DATA\\pycase\\number2\\8.1\\Data.csv')
-
- # apriori与pandas包输出数据格式不兼容,所以进行格式转换‘,
-
- # 以列表的形式进行分许
-
- transactions=data.groupby(by='交易ID').apply(
- lambda x: list(x.购买商品)
- )
-
-
- #min_support -- The minimum support of relations (float).
- #min_confidence -- The minimum confidence of relations (float).
- #min_lift -- The minimum lift of relations (float).
- #max_length
-
- # 调用apriori方法
-
- results=list(
- apriori(
- transactions
- )
- # 指出度(support),先输入空列表,再进行赋值
- supports=[]
- #自信度
- confidences=[]
- # 提升度
- lifts=[]
- # 基于项items_base
- bases=[]
- # 推导项items_add
- adds=[]
- for r in results:
- supports.append(r.support)
- confidences.append(r.ordered_statistics[0].confidence)
- lifts.append(r.ordered_statistics[0].lift)
- bases.append(list(r.ordered_statistics[0].items_base))
- adds.append(list(r.ordered_statistics[0].items_add))
-
- result = pandas.DataFrame({
- 'support': supports,
- 'confidence': confidences,
- 'lift': lifts,
- 'base': bases,
- 'add': adds
- })
-
- # 选择支持度大于0.5,自信度大于0.5,提升度大于1
-
- r=result[(result.lift>1)&(result.support>0.5)&(result.confidence>0.5)]
-
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。