失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据挖掘之关联规则分析

数据挖掘之关联规则分析

时间:2023-09-08 17:25:33

相关推荐

数据挖掘之关联规则分析

关联规则分析也称为购物篮分析,最早是为了发现超市销售数据库中不同的商品之间的关联关系。

用于寻找数据集中各项之间的关联关系。根据所挖掘的关联关系,可以从一个属性的信息来推断另一个属性的信息。当置信度达到某一阈值时,可以认为规则成立。

常用的关联规则算法

本文介绍最常用的Apriori算法。

项集:项的集合。包含k个项的项集成为k项集,如集合{牛奶、麦片、糖}是一个3项集

频繁项集:如果项集I的相对支持度满足预定义的最小支持度阈值,则I是频繁项集

支持度(相对支持度):项集A、B同时发生的概率。

置信度:项集A发生,则项集B发生的概率。

最小支持度:用户或专家定义的衡量支持度的一个阈值,表示项集在统计意义上的最低重要性。

最小置信度:用户或专家定义的衡量置信度的一个阈值,表示关联规则的最低可靠性。同时满足最小支持度阈值和最小置信度阈值的规则成为强规则。

目前,设置最小支持度和最小置信度,大部分根据业务经验设置初始值,然后经过多次调整,获取与业务相符的关联规则结果。

举例1:

R语言实现:

1、创建稀疏矩阵

tr <- read.transactions("menu_orders.txt",format="basket",sep=",") #读入源数据并创建稀疏矩阵#format=c("basket", "single")用于注明源数据的格式。如果源数据每行内容就是一条交易购买的商品列表(类似于一行就是一个购物篮)那么使用basket;如果每行内容是交易号+单个商品,那么使用single。

summary(tr) #查看数据集相关的统计汇总信息inspect(tr) #查看稀疏矩阵的内容

输出如下:

2、采用Apriori算法建模

rule0 = apriori(tr,parameter = list(support=0.2,confidence = 0.5)) #设定支持度为0.2,置信度为0.5

3、输出模型结果

inspect(rule0)

输出结果如下:

结果分析(以结果第12条为例):

a、b同时发生的概率是50%。

a发生,则b发生的概率是71.42857%。

这样就可以进行智能推荐了。

举例2:

trans = as(a,"transactions") #将数据转换成transactions属性inspect(trans[1:5]) #观察前五行的数据rules = apriori(trans,parameter = list(support=0.06,confidence = 0.75)) #调用Apriori算法,最小支持度为0.06,最小置信度为0.75rules #显示rules中关联规则条数inspect(rules) #观测rules中的关联规则

输出结果如下:

结果分析(以结果第2条为例):

A4、F3~H4的支持度最大,为7.85%,置信度为87.96%。说明当A4、F3的条件满足时,H4的可能性为87.96%,而这种情况发生的可能性为7.85%。

Python实现:

import pandas as pd from apriori import * 导入自己编写的Apriori函数data = pd.read_excel("menu_orders.xls",header=None)print(u'\n转换原始数据为0-1矩阵')ct = lambda x:pd.Series(1,index=x[pd.notnull(x)]) #转换0-1矩阵的过渡函数b = map(ct,data.as_matrix()) #用map方式执行data = pd.DataFrame(list(b)).fillna(0) #实现矩阵转换,空值用0填充print(u'\n转换完毕。')del b #删除中间变量b,节省内存support = 0.2 #最小支持度confidence = 0.5 #最小置信度ms = '---' #连接符find_rule(data,support,confidence,ms).to_excel('1.xls')

输出结果如下:

如果觉得《数据挖掘之关联规则分析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。