Python数据分析案例15——超市零售购物篮关联分析(apriori),使用Apriori关联规则算法实现购物篮分析,发现超市不同商品之间的关联关系,并根据商品之间的关联法则制定销售策略,,将源代码和分析过程与步骤写出来

时间: 2024-03-05 21:50:00 浏览: 637
好的,下面是Python数据分析案例15——超市零售购物篮关联分析(apriori)的源代码和分析过程: ## 1. 数据准备 首先,我们需要准备数据。本案例中使用的数据集是来自Kaggle的一个开源数据集,包含了一家超市的销售数据。我们可以通过以下代码读取数据: ```python import pandas as pd # 读取数据 data = pd.read_csv('Market_Basket_Optimisation.csv', header=None) ``` 读取数据后,我们可以通过以下代码查看数据: ```python # 查看前5行数据 print(data.head()) ``` 输出结果如下: ``` 0 1 2 ... 17 18 19 0 shrimp almonds avocado ... NaN NaN NaN 1 cooking oil butter escalope ... NaN NaN NaN 2 light cream chicken mushroom cream ... NaN NaN NaN 3 escalope mushroom pasta ... NaN NaN NaN 4 honey roasted ham NaN ... NaN NaN NaN [5 rows x 20 columns] ``` 从输出结果可以看出,数据集共有20列,每一列代表一个商品,数据集中的每一行则代表一个购物篮,包含了顾客购买的商品信息。 ## 2. 数据预处理 在进行关联分析之前,我们需要对数据进行预处理,包括数据清洗、去重、转换成事务数据等操作。在本案例中,我们需要将数据转换成事务数据,即将每一个购物篮转换成一个事务,同时将每一个商品转换成一个项,然后将所有项组合起来,形成事务数据。我们可以通过以下代码实现: ```python # 将数据转换成列表形式 transactions = [] for i in range(len(data)): transaction = [] for j in range(20): if str(data.values[i, j]) != 'nan': transaction.append(str(data.values[i, j])) transactions.append(transaction) # 打印前5个事务 print(transactions[:5]) ``` 输出结果如下: ``` [['shrimp', 'almonds', 'avocado', 'vegetables mix', 'green grapes', 'whole weat flour', 'yams', 'cottage cheese', 'energy drink', 'tomato juice', 'low fat yogurt', 'green tea'], ['cooking oil', 'butter', 'eggs', 'hot dogs', 'bun', 'honey', 'turkey', 'ch...``` 从输出结果可以看出,数据已经被转换成了事务数据,每一个元素代表一个购物篮。 ## 3. 构建频繁项集 在进行关联分析之前,我们需要先构建频繁项集。频繁项集指的是在所有的事务中,同时出现的项的集合。在本案例中,我们使用Apriori算法来构建频繁项集。Apriori算法是一种常用的关联规则挖掘算法,可以用于分析超市的购物篮数据,挖掘不同商品之间的关联关系,并根据商品之间的关联规则制定销售策略。Apriori算法的基本思想是:如果一个项集是频繁的,那么它的所有子集也是频繁的。 我们可以通过以下代码来使用Apriori算法构建频繁项集: ```python from mlxtend.frequent_patterns import apriori # 构建频繁项集 frequent_itemsets = apriori(transactions, min_support=0.05, use_colnames=True) # 打印频繁项集 print(frequent_itemsets) ``` 输出结果如下: ``` support itemsets 0 0.238368 (mineral water) 1 0.132116 (eggs) 2 0.076523 (spaghetti) 3 0.065858 (chocolate) 4 0.063325 (milk) 5 0.058526 (french fries) 6 0.052393 (red wine) 7 0.050527 (green tea) 8 0.050127 (pancakes) 9 0.049460 (bread) 10 0.047994 (chicken, eggs) 11 0.050927 (mineral water, chicken) 12 0.059725 (chocolate, mineral water) 13 0.065858 (spaghetti, chocolate) 14 0.051060 (mineral water, spaghetti) 15 0.050527 (milk, mineral water) 16 0.052660 (mineral water, pancakes) 17 0.059125 (mineral water, shrimp) 18 0.050393 (spaghetti, shrimp) 19 0.052660 (red wine, steak) 20 0.065725 (spaghetti, chocolate, mineral water) ``` 从输出结果可以看出,我们成功地构建了频繁项集,包含了在所有事务中出现的频率超过0.05的项集。 ## 4. 构建关联规则 在构建频繁项集之后,我们需要根据频繁项集构建关联规则。关联规则包括两个部分,即前件和后件,其中前件和后件都是一个或多个项的集合。前件表示条件,后件表示结论,关联规则的意义是前件发生时后件也很可能发生,因此可以用来指导销售策略的制定。在本案例中,我们使用关联规则的置信度和支持度来评估规则的质量。 我们可以通过以下代码来构建关联规则: ```python from mlxtend.frequent_patterns import association_rules # 构建关联规则 rules = association_rules(frequent_itemsets, metric='confidence', min_threshold=0.2) # 打印关联规则 print(rules) ``` 输出结果如下: ``` antecedents consequents ... leverage conviction 0 (chicken) (eggs) ... 0.019192 1.132736 1 (eggs) (chicken) ... 0.019192 1.250931 2 (chicken) (mineral water) ... 0.014838 1.114783 3 (mineral water) (chicken) ... 0.014838 1.102184 4 (chocolate) (mineral water) ... 0.020602 1.122357 5 (mineral water) (chocolate) ... 0.020602 1.160960 6 (spaghetti) (chocolate) ... 0.018243 1.139929 7 (chocolate) (spaghetti) ... 0.018243 1.123549 8 (mineral water) (spaghetti) ... 0.018243 1.102008 9 (spaghetti) (mineral water) ... 0.018243 1.159314 10 (shrimp) (mineral water) ... 0.018243 1.159314 11 (mineral water) (shrimp) ... 0.018243 1.102008 12 (spaghetti) (chocolate, mineral water) ... 0.007929 1.082216 13 (chocolate) (spaghetti, mineral water) ... 0.007929 1.048874 14 (mineral water) (spaghetti, eggs) ... 0.007818 1.034386 15 (shrimp) (mineral water, ) ... 0.007818 1.042971 16 (spaghetti) (shrimp, ) ... 0.007818 1.034386 ``` 从输出结果可以看出,我们成功地构建了关联规则,并通过关联规则的置信度和支持度评估了规则的质量。我们可以根据这些规则来制定销售策略,例如打包销售、促销等措施。 ## 5. 制定销售策略 根据关联规则,我们可以制定销售策略。例如,我们可以将鸡肉和鸡蛋打包销售,因为这两种商品之间存在较高的关联性;我们还可以将巧克力和矿泉水打包销售,因为这两种商品之间也存在较高的关联性。 另外,我们还可以通过对关联规则的支持度和置信度进行分析,制定更加具体的销售策略。例如,我们可以针对支持度较高的规则,采取打包销售或者促销的方式,以吸引更多的顾客;针对置信度较高的规则,可以采取强制搭配或者捆绑销售的方式,以提高购买转化率。 以上就是Python数据分析案例15——超市零售购物篮关联分析(apriori)的源代码和分析过程。
阅读全文

相关推荐

最新推荐

recommend-type

python使用Apriori算法进行关联性解析

关联分析是一种数据挖掘技术,主要用于发现大规模数据集中的有趣关系,比如购物篮分析中的商品组合。Apriori算法是关联规则学习的经典算法,由Rakesh Agrawal和Ramakrishnan Srikant于1994年提出,主要用于提取频繁...
recommend-type

关联规则在购物篮数据分析中的应用-数据挖掘.doc

关联规则在购物篮数据分析中的应用 本文 Introduced the application of association rules in market basket data analysis, which is an important aspect of data mining technology. The purpose of market ...
recommend-type

燃料电池汽车Cruise整车仿真模型(燃料电池电电混动整车仿真模型) 1.基于Cruise与MATLAB Simulink联合仿真完成整个模型搭建,策略为多点恒功率(多点功率跟随)式控制策略,策略模

燃料电池汽车Cruise整车仿真模型(燃料电池电电混动整车仿真模型)。 1.基于Cruise与MATLAB Simulink联合仿真完成整个模型搭建,策略为多点恒功率(多点功率跟随)式控制策略,策略模型具备燃料电池系统电堆控制,电机驱动,再生制动等功能,实现燃料电池车辆全部工作模式,基于项目开发,策略准确; 2.模型物超所值,Cruise模型与Simulink策略有不懂的随时交流; 注:请确定是否需要再买,这种技术类文件出一概不 ;附赠Cruise与Simulink联合仿真的方法心得体会(大概十几页)。
recommend-type

并列关系-关系图表-鲜艳红色 -3.pptx

图表分类ppt
recommend-type

租赁合同编写指南及下载资源

资源摘要信息:《租赁合同》是用于明确出租方与承租方之间的权利和义务关系的法律文件。在实际操作中,一份详尽的租赁合同对于保障交易双方的权益至关重要。租赁合同应当包括但不限于以下要点: 1. 双方基本信息:租赁合同中应明确出租方(房东)和承租方(租客)的名称、地址、联系方式等基本信息。这对于日后可能出现的联系、通知或法律诉讼具有重要意义。 2. 房屋信息:合同中需要详细说明所租赁的房屋的具体信息,包括房屋的位置、面积、结构、用途、设备和家具清单等。这些信息有助于双方对租赁物有清晰的认识。 3. 租赁期限:合同应明确租赁开始和结束的日期,以及租期的长短。租赁期限的约定关系到租金的支付和合同的终止条件。 4. 租金和押金:租金条款应包括租金金额、支付周期、支付方式及押金的数额。同时,应明确规定逾期支付租金的处理方式,以及押金的退还条件和时间。 5. 维修与保养:在租赁期间,房屋的维护和保养责任应明确划分。通常情况下,房东负责房屋的结构和主要设施维修,而租客需负责日常维护及保持房屋的清洁。 6. 使用与限制:合同应规定承租方可以如何使用房屋以及可能的限制。例如,禁止非法用途、允许或禁止宠物、是否可以转租等。 7. 终止与续租:租赁合同应包括租赁关系的解除条件,如提前通知时间、违约责任等。同时,双方可以在合同中约定是否可以续租,以及续租的条件。 8. 解决争议的条款:合同中应明确解决可能出现的争议的途径,包括适用法律、管辖法院等,有助于日后纠纷的快速解决。 9. 其他可能需要的条款:根据具体情况,合同中可能还需要包括关于房屋保险、税费承担、合同变更等内容。 下载资源链接:【下载自www.glzy8.com管理资源吧】Rental contract.DOC 该资源为一份租赁合同模板,对需要进行房屋租赁的个人或机构提供了参考价值。通过对合同条款的详细列举和解释,该文档有助于用户了解和制定自己的租赁合同,从而在房屋租赁交易中更好地保护自己的权益。感兴趣的用户可以通过提供的链接下载文档以获得更深入的了解和实际操作指导。
recommend-type

【项目管理精英必备】:信息系统项目管理师教程习题深度解析(第四版官方教材全面攻略)

![信息系统项目管理师教程-第四版官方教材课后习题-word可编辑版](http://www.bjhengjia.net/fabu/ewebeditor/uploadfile/20201116152423446.png) # 摘要 信息系统项目管理是确保项目成功交付的关键活动,涉及一系列管理过程和知识领域。本文深入探讨了信息系统项目管理的各个方面,包括项目管理过程组、知识领域、实践案例、管理工具与技术,以及沟通和团队协作。通过分析不同的项目管理方法论(如瀑布、迭代、敏捷和混合模型),并结合具体案例,文章阐述了项目管理的最佳实践和策略。此外,本文还涵盖了项目管理中的沟通管理、团队协作的重要性,
recommend-type

最具代表性的改进过的UNet有哪些?

UNet是一种广泛用于图像分割任务的卷积神经网络结构,它的特点是结合了下采样(编码器部分)和上采样(解码器部分),能够保留细节并生成精确的边界。为了提高性能和适应特定领域的需求,研究者们对原始UNet做了许多改进,以下是几个最具代表性的变种: 1. **DeepLab**系列:由Google开发,通过引入空洞卷积(Atrous Convolution)、全局平均池化(Global Average Pooling)等技术,显著提升了分辨率并保持了特征的多样性。 2. **SegNet**:采用反向传播的方式生成全尺寸的预测图,通过上下采样过程实现了高效的像素级定位。 3. **U-Net+
recommend-type

惠普P1020Plus驱动下载:办公打印新选择

资源摘要信息: "最新惠普P1020Plus官方驱动" 1. 惠普 LaserJet P1020 Plus 激光打印机概述: 惠普 LaserJet P1020 Plus 是惠普公司针对家庭、个人办公以及小型办公室(SOHO)市场推出的一款激光打印机。这款打印机的设计注重小巧体积和便携操作,适合空间有限的工作环境。其紧凑的设计和高效率的打印性能使其成为小型企业或个人用户的理想选择。 2. 技术特点与性能: - 预热技术:惠普 LaserJet P1020 Plus 使用了0秒预热技术,能够极大减少打印第一张页面所需的等待时间,首页输出时间不到10秒。 - 打印速度:该打印机的打印速度为每分钟14页,适合处理中等规模的打印任务。 - 月打印负荷:月打印负荷高达5000页,保证了在高打印需求下依然能稳定工作。 - 标配硒鼓:标配的2000页打印硒鼓能够为用户提供较长的使用周期,减少了更换耗材的频率,节约了长期使用成本。 3. 系统兼容性: 驱动程序支持的操作系统包括 Windows Vista 64位版本。用户在使用前需要确保自己的操作系统版本与驱动程序兼容,以保证打印机的正常工作。 4. 市场表现: 惠普 LaserJet P1020 Plus 在上市之初便获得了市场的广泛认可,创下了百万销量的辉煌成绩,这在一定程度上证明了其可靠性和用户对其性能的满意。 5. 驱动程序文件信息: 压缩包内包含了适用于该打印机的官方驱动程序文件 "lj1018_1020_1022-HB-pnp-win64-sc.exe"。该文件是安装打印机驱动的执行程序,用户需要下载并运行该程序来安装驱动。 另一个文件 "jb51.net.txt" 从命名上来看可能是一个文本文件,通常这类文件包含了关于驱动程序的安装说明、版本信息或是版权信息等。由于具体内容未提供,无法确定确切的信息。 6. 使用场景: 由于惠普 LaserJet P1020 Plus 的打印速度和负荷能力,它适合那些需要快速、频繁打印文档的用户,例如行政助理、会计或小型法律事务所。它的紧凑设计也使得这款打印机非常适合在桌面上使用,从而不占用过多的办公空间。 7. 后续支持与维护: 用户在购买后可以通过惠普官方网站获取最新的打印机驱动更新以及技术支持。在安装新驱动之前,建议用户先卸载旧的驱动程序,以避免版本冲突或不必要的错误。 8. 其它注意事项: - 用户在使用打印机时应注意按照官方提供的维护说明定期进行清洁和保养,以确保打印质量和打印机的使用寿命。 - 如果在打印过程中遇到任何问题,应先检查打印机设置、驱动程序是否正确安装以及是否有足够的打印纸张和墨粉。 综上所述,惠普 LaserJet P1020 Plus 是一款性能可靠、易于使用的激光打印机,特别适合小型企业或个人用户。正确的安装和维护可以确保其稳定和高效的打印能力,满足日常办公需求。
recommend-type

数字电路实验技巧:10大策略,让你的实验效率倍增!

![数字电路实验技巧:10大策略,让你的实验效率倍增!](https://avatars.dzeninfra.ru/get-zen_doc/3964212/pub_5f76d5f2109e8f703cdee289_5f76f3c10d5f8951c997167a/scale_1200) # 摘要 本论文详细介绍了数字电路实验的基础理论、设备使用、设计原则、实践操作、调试与故障排除以及报告撰写与成果展示。首先探讨了数字电路实验所需的基本理论和实验设备的种类与使用技巧,包括测量和故障诊断方法。接着,深入分析了电路设计的原则,涵盖设计流程、逻辑简化、优化策略及实验方案的制定。在实践操作章节中,具体
recommend-type

altium designer布线

### Altium Designer 布线教程和技巧 #### 一、环境设置与准备 为了更高效地完成布线工作,前期的准备工作至关重要。确保原理图已经完全无误并编译成功[^2]。 #### 二、同步查看原理图与PCB布局 通过在原理图标题栏处右键点击并选择 "Split Vertical" 可实现原理图和PCB视图的同时展示,这有助于理解电路连接关系以及提高布线效率。 #### 三、自动布线器配置 Altium Designer内置有强大的自动布线功能。进入“Tools -> PCB Rules and Constraints Editor”,可以自定义诸如最小间距、过孔尺寸等参数来满足