糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 轻松入门机器学习数据挖掘算法——关联分析(Apriori算法)

轻松入门机器学习数据挖掘算法——关联分析(Apriori算法)

时间:2023-07-19 19:58:27

相关推荐

轻松入门机器学习数据挖掘算法——关联分析(Apriori算法)

小故事:20世纪90年代,沃尔玛超市在对顾客的购物记录进行购物篮分析时,发现了一个奇怪的现象: “啤酒”和“尿布”两件看上去毫无关系的商品,经常出现在同一个购物篮中。通过关联分析,确实能发现事物之间一些令人意外的“关系”。依据这些“关系”,可以引导卖家调整营销策略,把关联程度较高的商品打包在一起,提高销量。或者针对买家已购买的产品,推荐与之相关的其他产品或信息,精准营销。

数据挖掘方法——关联分析(Apriori算法)

一、Apriori 算法可以做什么工作?二、Apriori 算法三、Python调用apriori()函数四、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 = [['薯条', '可乐'], ['薯条', '可乐', '奶茶'], ['汉堡', '薯条', '可乐'], ['汉堡', '可乐']]# 创建变量 results,调用 apriori() 函数,传入 orders ,设置最小支持度为 0.2,最小置信度为 0.7results = apriori(orders, min_support = 0.2, min_confidence = 0.7)# 查看变量 resultsprint(results) # <generator>是一个生成器对象,它是一种用于节省空间的运算机制,可以通过循环遍历的形式对它里面的数据进行访问for result in results:print(result)

四、Apriori生成器说明

1.结果都包含在一个 RelationRecord()中,括号里面有很多很长的内容;

2.RelationRecord(items=frozenset({‘可乐’, ‘薯条’}), support=0.75, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset({‘可乐’, ‘薯条’}), confidence=0.75, lift=1.0), OrderedStatistic(items_base=frozenset({‘可乐’}), items_add=frozenset({‘薯条’}), confidence=0.75, lift=1.0), OrderedStatistic(items_base=frozenset({‘薯条’}), items_add=frozenset({‘可乐’}), confidence=1.0, lift=1.0)])

RelationRecord:关系记录

items:频繁项集

support:频繁项集支持度

ordered_statistics:统计列表,指频繁项集可生成的强关联规则(描述关联规则)

items_base:前件

items_add:后件

confidence:置信度

lift:提升度

3.强关联规则:OrderedStatistics

前件:{‘可乐’}

后件:项集{‘薯条’}的规则

置信度:0.75

提升度:1.0

五、练习

# 创建4条早餐店交易数据breakfast = [['豆浆', '油条', '麻球'], ['豆浆', '热干面', '面包'], ['豆浆', '肠粉', '油条'], ['咖啡', '面包'], ['豆浆', '油条']]results_bre = apriori(breakfast, min_support = 0.5) # results_brefor result in results_bre:# print(result)support = round(result.support, 3)for rule in result.ordered_statistics:head_set = list(rule.items_base)tail_set = list(rule.items_add)if head_set == []:continuerelated_catogory = str(head_set) + '→' + str(tail_set)confidence = round(rule.confidence, 3)lift = round(rule.lift, 3)print(related_catogory, support, confidence, lift)

未完待续

5月15日青海·西宁

如果觉得《轻松入门机器学习数据挖掘算法——关联分析(Apriori算法)》对你有帮助,请点赞、收藏,并留下你的观点哦!

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