【Python机器学习】Apriori算法——关联分析

从大规模数据集中寻找物品间的隐含关系被称为关联分析或者关联规则学习。这里的主要问题在于,寻找物品的不同组合是一项十分耗时的任务,所需的计算代价很高,蛮力搜索方法并不能解决这个问题,所以需要用更智能的方法在合理的时间范围内寻找频繁项集。

Apriori算法就可以解决上述问题。

Apriori算法的优缺点:

优点:易编码实现

缺点:在大数据集上可能较慢

使用数据类型:数值型或者标称型数据。

关联分析是一种在大规模数据集中寻找有趣任务的任务。这些关系可以有两种形式:频繁项集或者关联规则。频繁项集是经常出现在一块的物品的集合,关联规则暗示两种物品质检可能存在很强的关系。

比如下面的例子:这是某个杂货铺的交易清单:

订单号商品
0

豆奶、莴苣

1莴苣、尿布、葡萄酒、甜菜
2豆奶、尿布、葡萄酒、橙汁
3莴苣、豆奶、尿布、葡萄酒
4莴苣、豆奶、尿布、橙汁

频繁项集是指那些经常出现在一起的物品集合。上表中的集合{葡萄酒、尿布、豆奶}就是频繁项集的一个例子。从上面的数据集中也可以找到例如尿布-葡萄酒的关联规则。这意味着如果有人买了尿布,那么他也很可能买葡萄酒。使用频繁项集和关联规则,商家可以更好的理解他们的顾客。尽管大部分关联规则分析的实例来自零售行业,但该技术同样可以用于其他行业。

当寻找频繁项集时,频繁的定义一般是指支持度和可信度。

一个项集的支持度被定义为数据集中包含该项集的记录所占的比例。杂货铺的例子中可以得到,{豆奶}的支持度是4/5。而在5条记录中,有3条包含{豆奶、尿布},因此{豆奶、尿布}的支持度为3/5。支持度是针对项集来说的,因此可以定义一个最小支持度,而只保留满足最小支持度的项集。

可信度或者置信度是针对一条{尿布}→{葡萄酒}的关联规则来定义的。这条规则的可信度被定义为“支持度({尿布、葡萄酒})/支持度({尿布})”。由于{豆奶、尿布}的支持度为3/5,{尿布}的支持度是4/5,所以尿布→葡萄酒的可信度为3/4=0.75。这意味着对于包含尿布的所有记录,我们的规则对其中75%的记录都适用。

支持度和可信度是用来量化关联分析是否成功的方法,假设想找到支持度大于0.8的所有项集,一个方法是生成一个物品所有可能组合的清单,然后对每一种组合统计它出现的频繁程度,但当物品成千上万时,上述做法非常非常慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值