python数据分析 - 关联规则Apriori算法

这篇具有很好参考价值的文章主要介绍了python数据分析 - 关联规则Apriori算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导语

关联规则
是反映一个事物与其他事物之间的相互依存性和关联性

常用于实体商店或在线电商的推荐系统:通过对顾客的购买记录数据库进行关联规则挖掘,最终目的是发现顾客群体的购买习惯的内在共性,例如购买产品A的同时也连带购买产品B的概率,根据挖掘结果,调整货架的布局陈列、设计促销组合方案,实现销量的提升,最经典的应用案例莫过于<啤酒和尿布>。关联规则分析中的关键概念包括:支持度(Support)、置信度(Confidence)与提升度(Lift)。

支持度(support)
支持度 (Support)支持度是两件商品 ( X ⋂ Y ) (X \bigcap Y) (XY)在总销售笔数(N)中出现的概率,即A与B同时被购买的概率
S u p p o r t ( X ⋂ Y ) = F r e q ( X ⋂ Y ) N Support(X \bigcap Y)=\frac{Freq(X \bigcap Y)}{N} Support(XY)=NFreq(XY)

举例说明
比如某超市2016年有100w笔销售,顾客购买可乐又购买薯片有20w笔,顾客购买可乐又购买面包有10w笔

  • 可乐和薯片的关联规则的支持度是:20%
  • 可乐和面包的支持度是10%

置信度(confidence)
置信度是购买X后再购买Y的条件概率。简单来说就是交集部分Y在X中比例,如果比例大说明购买X的客户很大期望会购买Y商品
C o n f i d e n c e = F r e q ( X ⋂ Y ) F r e q ( X ) Confidence=\frac{Freq(X \bigcap Y)}{Freq (X)} Confidence=Freq(X)Freq(XY)

举例说明
某超市2016年可乐购买次数40w笔,购买可乐又购买了薯片是30w笔,顾客购买可乐又购买面包有10w笔

  • 购买可乐又会购买薯片的置信度是75%
  • 购买可乐又购买面包的置信度是25%

提升度(lift)
提升度表示先购买X对购买Y的概率的提升作用,用来判断规则是否有实际价值,即使用规则后商品在购物车中出现的次数是否高于商品单独出现在购物车中的频率
L i f t = S u p p o r t ( X ⋂ Y ) S u p p o r t ( X ) ∗ S u p p o r t ( Y ) Lift=\frac{Support(X \bigcap Y)}{Support(X)*Support(Y)} Lift=Support(X)Support(Y)Support(XY)

举例说明
可乐和薯片的关联规则的支持度是20%,购买可乐的支持度是3%,购买薯片的支持度是5%

  • 提升度是1.33

{X→Y}的提升度大于1,这表示如果顾客购买了商品X,那么可能也会购买商品Y;而提升度小于1则表示如果顾客购买了商品X,那么不太可能再购买商品Y

有这三个指标,如何选择商品的组合,是需要对支持度,置信度,提升度综合指标来看待商品组合。没有固定的数值衡量

mlxtend实现Apriori算法

数据集选择:Grocery Store Data Set

数据集为10000多个购买商品的订单。该数据集包含11商品:果酱、麦琪、糖、咖啡、奶酪、茶、波恩维塔、玉米片、面包、饼干和牛奶。

import pandas as pd
data=pd.read_csv('GroceryStoreDataSet.csv',names=['products'],header=None)
data.head(10)

python数据分析 - 关联规则Apriori算法

data=list(data['products'].apply(lambda x:x.split(',')))
data

python数据分析 - 关联规则Apriori算法
转换数据类型TransactionEncoder类似于独热编码,每个值转换为一个唯一的bool值)

from mlxtend.preprocessing import TransactionEncoder

d=TransactionEncoder()
d_data=d.fit(data).transform(data)
df=pd.DataFrame(d_data,columns=d.columns_)
df

TransactionEncoder类似于独热编码,每个值转换为一个唯一的bool值)
python数据分析 - 关联规则Apriori算法
求支持度

from mlxtend.frequent_patterns import apriori
df1=apriori(df,min_support=0.01,use_colnames=True)
df1.sort_values(by='support',ascending=False)

python数据分析 - 关联规则Apriori算法
求置信度与提升度
association_rules方法判断置信度,这里提取confidence大于0.9的

from mlxtend.frequent_patterns import association_rules
 
association_rule = association_rules(df1,metric='confidence',min_threshold=0.9)

python数据分析 - 关联规则Apriori算法

列中的columns参数含义如下:

  • antecedents:商品X组合
  • consequents:商品Y组合
    购买关联的关系是{X -> Y}
  • antecedent support:商品X组合支持度
  • consequent support:商品Y组合支持度
  • support:{X -> Y}支持度
  • confidence:{X -> Y}置信度
  • lift:{X -> Y}提升度
  • leverage:规则杠杆率,表示当商品X组合与商品Y组合独立分布时,商品X组合与商品Y组合一起出现的次数比预期多多少。
  • conviction:{X -> Y}确信度,与提升度类似,但用差值表示。

确信度值越大,则商品X组合与商品Y组合的关联性越强。 以上三个值都是越大关联强度也就越大,inf表示无穷大。

注意是商品组合

单个商品与单个商品之间的关系
筛选商品组合,选出只有一个商品的antecedents,和consequents。

association_rule['X_length']=association_rule['antecedents'].apply(lambda x:len(x))
association_rule['Y_length']=association_rule['consequents'].apply(lambda x:len(x))

association_rule=association_rule[(association_rule['X_length']==1) & (association_rule['Y_length']==1) ]

python数据分析 - 关联规则Apriori算法

也可以单独对antecedents的商品组合,分析,观察antecedent support值,找出关联性最大的情况文章来源地址https://www.toymoban.com/news/detail-470149.html

到了这里,关于python数据分析 - 关联规则Apriori算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据挖掘——关联规则(Association Rule)Apriori算法和python代码实现

    关联规则(Association Rules)是反映一个事物与其他事物之间的相互依存性和关联性,是数据挖掘的一个重要技术,用于从大量数据中挖掘出有价值的数据项之间的相关关系。 用一些例子来说明一下: 当我们在超市进行购物时,超市中有琳琅满目的商品,在每一次购物结束之后,

    2024年02月04日
    浏览(55)
  • 机器学习:基于Apriori算法对中医病症辩证关联规则分析

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 大家好,我

    2024年02月06日
    浏览(69)
  • 利用python实现Apriori关联规则算法

            大家可能听说过用于宣传数据挖掘的一个案例:啤酒和尿布;据说是沃尔玛超市在分析顾客的购买记录时,发现许多客户购买啤酒的同时也会购买婴儿尿布,于是超市调整了啤酒和尿布的货架摆放,让这两个品类摆放在一起;结果这两个品类的销量都有明显的增长

    2024年02月02日
    浏览(58)
  • 关联规则挖掘(上):数据分析 | 数据挖掘 | 十大算法之一

    ⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者: 秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们 点赞👍🏻、收藏

    2024年02月07日
    浏览(56)
  • 数据挖掘-关联规则学习-Apriori算法原理

    比如你女朋友,低头玩手指+沉默,那大概率生气了,那这就是你总结出来的规则。啤酒与尿布的例子相信很多人都听说过吧,故事是这样的:在一家超市中,人们发现了一个特别有趣的现象,尿布与啤酒这两种风马牛不相及的商品居然摆在一起,但这一奇怪的举措居然使尿布

    2024年02月11日
    浏览(78)
  • 大数据关联规则挖掘:Apriori算法的深度探讨

    在本文中,我们深入探讨了Apriori算法的理论基础、核心概念及其在实际问题中的应用。文章不仅全面解析了算法的工作机制,还通过Python代码段展示了具体的实战应用。此外,我们还针对算法在大数据环境下的性能局限提出了优化方案和扩展方法,最终以独到的技术洞见进行

    2024年01月24日
    浏览(265)
  • 关联规则算法(Apriori算法、FP-Growth算法)小案例(python mlxtend)

    目录 一、Apriori  二、FP-Growth 算法理论部分参考: (28条消息) Apriori算法与FP-Tree算法_messi_james的博客-CSDN博客 参考: (28条消息) 【机器学习】关联规则及python实现_mlxtend.frequent_patterns_为什么昵称不能重复的博客-CSDN博客

    2024年02月13日
    浏览(58)
  • 大数据的常用算法(分类、回归分析、聚类、关联规则、神经网络方法、web数据挖掘)

    在大数据时代,数据挖掘是最关键的工作。大数据的挖掘是从海量、不完全的、有噪声的、模糊的、随机的大型数据库中发现隐含在其中有价值的、潜在有用的信息和知识的过程,也是一种决策支持过程。其主要基于人工智能,机器学习,模式学习,统计学等。通过对大数据

    2024年02月09日
    浏览(63)
  • 利用weka进行数据挖掘——基于Apriori算法的关联规则挖掘实例

    首先,如果不熟悉weka的使用的话,可以从我的git仓库里面拉取一下weka的相关教程,仓库里面还有包含此次实例的所有资源 我们可以在weka的官网上下载weka软件:weka官网 如果下载速度慢的话也可以直接从我的git仓库里面拉取这个软件,软件是win64位的weka-3-8-6 然后找到对应版

    2024年02月06日
    浏览(53)
  • 关联规则挖掘算法--Apriori算法

    关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找到各项之间的关联关系,而这种关系并没有在数据中直接体现出来。Apriori算法 关联规则 学习的经典算法之一,是R.Agrawal和R.Srikartt于1944年提出的一种具有影响力的挖掘布尔关联规则挖掘频繁项集的

    2024年02月04日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包