小故事:20世纪90年代,沃尔玛超市在对顾客的购物记录进行购物篮分析时,发现了一个奇怪的现象: “啤酒”和“尿布”两件看上去毫无关系的商品,经常出现在同一个购物篮中。通过关联分析,确实能发现事物之间一些令人意外的“关系”。依据这些“关系”,可以引导卖家调整营销策略,把关联程度较高的商品打包在一起,提高销量。或者针对买家已购买的产品,推荐与之相关的其他产品或信息,精准营销。
数据挖掘方法——关联分析(Apriori算法)
一、Apriori 算法可以做什么工作?
关联分析是一门分析技术,用于发现大量数据中,各组数据之间的联系。关联分析是探索数据之间联系的技术,而数据之间的联系,我们用关联规则来表示,表达式为:{X}→{Y}(X 和 Y 之间不存在相同项)。大多数的关联分析工作,主要任务就是生成频繁项集和关联规则,从而发现隐藏的关联关系。现实工作中的“项”(商品)成百上千,真实的“事务”(交易)数以万计,确认频繁项集合关联规则,提高计算效率可以使用Apriori算法。
二、Apriori 算法
Apriori是用于挖掘出数据背后的关联规则的一种算法,它的流程可分为两步:(1)确定最小支持度和置信度;(2)找出所有频繁项集和强关联规则。
Apriori 的算法主要依赖两个性质:
(1)一个项集如若是频繁的,那它的非空子集也一定是频繁的。假如购买{薯条,奶茶}的概率都很高,那购买{薯条}或{奶茶}的概率肯定也很高。
(2)一个项集如若是非频繁的,那包含该项集的项集也一定是非频繁的。假设购买{薯条}的次数少,那购买{薯条,奶茶}的次数肯定也少。
在 Apriori 算法出现之前,要找出所有的频繁项集,就得先枚举所有的项集,计算它们的支持度,然后和最小支持度(0.2)进行对比,筛选出频繁项集。
三、Python调用apriori()函数
Python 调用 apriori()函数
apriori(transactions, min_support, min_confidence, min_lift)
transactions:事务集合,值可以是嵌套列表或者Series对象
min_support:最小支持度,默认0.1
min_confidence:最小置信度,默认0
min_lift:最小提升度,默认为0
# 导入 apyori 模块下的 apriori() 函数
from apyori import apriori
# 创建4条快餐交易数据
orders = [['薯条', '可乐&#