需要源码请点赞关注收藏后评论区留言私信~~~
大部分关联规则挖掘算法都使用支持度-置信度框架。尽管最小支持度和置信度阈值可以排除大量无趣规则的探查,但仍然会有一些用户不感兴趣的规则存在。当使用低支持度阈值挖掘或挖掘长模式时,这种情况尤为严重
强关联规则不一定是有趣的,并且只有用户才能够评判一个给定的规则是否有趣
从关联分析到相关分析
由于支持度和置信度还不足以过滤掉无趣的关联规则,因此,可以使用相关性度量来扩展关联规则的支持度-置信度框架。相关规则框架为:
1:提升度
2:使用卡方进行检验
Apriori算法应用
在Pyhton中进行关联规则挖掘时需要用到apyori包,apyori包的安装方式为:
pip install apyori
首先导入包和相关数据 输出部分数据如下图所示
接着获取项集
返回结果result中的属性说明:
items – 项集,
frozenset对象,
可迭代取出子集;
support – 支持度,
float类型;
confidence – 置信度或可信度,
float类型;
ordered_statistics – 存在的关联规则,可迭代,迭代后
其元素的属性: items_base – 关联规则中的分母项集; confidence – 上面的分母规则所对应的关联规则的可信度
进行关联规则挖掘 输出如下
显示挖掘的关联规则 输出如下
部分代码如下
import pandas as pd from apyori import apriori df = pd.read_excel("data.xls") df.head() min_supp = 0.1 min_conf = 0.1 min_lift = 0.1 result = list(apriori(transactions=transactions, min_support=min_supp, min_confidence=min_conf, min_lift=min_lift)) result supports=[] confidences=[] lifts=[] bases=[] adds=[] for r in result: for x in r.ordered_statistics: supports.append(r.support) confidences.append(x.confidence) lifts.append(x.lift) bases.append(list(x.items_base)) adds.append(list(x.items_add)) resultshow = pd.DataFrame({ 'support':supports, 'confidence':confidences, 'lift':lifts, 'base':bases, 'add':adds})
Apriori算法应用2
关联规则目前在scikit-learn中并没有实现
机器学习扩展库mlxtend
是一款高级的机器学习扩展库,可用于日常机器学习任务的主要工具,也可以作为sklearn的一个补充和辅助工具
mlxtend提供了多种分类和回归算法api,包括多层感知机、stacking分类器、逻辑回归等
使用如下命令安装
pip install mlxtend
我们以超市购物为场景来进行算法应用 计算频繁项集结果如下
结果如下
可见不同商品之间的组合关联程度不同 商家可以根据这个来调整货物的摆放
部分代码如下
mport pandas as pd item_list = [['牛奶','面包'], ['面包','尿布','啤酒','土豆'], ['牛奶','尿布','啤酒','可乐'], me(item_list) # from mlxtend.preprocessing import TransactionEncode import mlxtend te = mlxtend.preprocessing.TransactionEncoder() df_tf = te.fit_transform(item_list) df = pd.DataFrame(df_tf,columns=te.columns_) display(df) 计算频繁项集 from mlxtend.frequent_patterns import apriori # use_colnames=True表示使用元素名字,默认的False使用列名代表元素frequent_itemsets = apriori(df, min_support=0.05, use_colnames=True) frequent_itemsets.sort_values(by='support', ascending=False, inplace=True) # 选择2频繁项集 print(frequent_itemsets[frequent_itemsets.itemsets.apply(lambd
总结
关联分析是数据挖掘体系中重要的组成部分之一,其代表性的案例即为“购物篮分析”,即通过搜索经常在一起购买的商品的集合,研究顾客的购买习惯
关联规则挖掘的过程主要包含两个阶段。第一阶段必须先从事务数据集中找出所有的频繁项,第二阶段再由这些频繁项产生强关联规则。这些规则满足最小支持度和最小置信度阈值
频繁项集的挖掘方法主要有Apriori算法、基于频繁模式增长算法如FP-Growth以及利用垂直数据格式的算法
Apriori算法是最早出现的关联规则挖掘算法。它利用逐层搜索的迭代方法找出事务集中项集的关系,并形成关联规则。Apriori算法利用了“频繁项集的所有非空子集也是频繁的”这一先验性质,迭代对k项频繁集连接生成k+1项候选集并进行剪枝,得到k+1项频繁集。最后利用频繁项集构造满足最小支持度和最小置信度的规则
创作不易 觉得有帮助请点赞关注收藏~~~