热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用R语言进行Foodmart数据的关联规则分析与可视化

本文探讨了如何利用R语言中的arules和arulesViz包对Foodmart数据集进行关联规则的挖掘与可视化。文章首先介绍了数据集的基本情况,然后逐步展示了如何进行数据预处理、规则挖掘及结果的图形化呈现。

使用R语言进行Foodmart数据的关联规则分析与可视化

  • 数据集介绍
  • 数据预处理
  • 关联规则挖掘
  • 规则可视化
  • 商品类别间的关联规则
  • 规则评估指标
  • 附加说明
数据集介绍

本文基于Foodmart1997和1998年的购物篮数据进行分析,这些数据已合并成一个名为sales.txt的数据集,其中商品通过编号表示。具体商品列表见productList.txt文件。本研究主要采用R语言的arules和arulesViz包进行关联规则的挖掘和可视化,部分数据预处理工作使用了Python。

# 导入库
library(arules)
library(arulesViz)
library(RColorBrewer)
library(shinythemes)

# 加载交易数据集
sales <- read.transactions("Sales.txt", format = "basket", sep = " ")
summary(sales)

上述代码加载了数据集并提供了基本的统计信息,包括交易总数、商品种类、密度、最常出现的商品及其频率、每笔交易的商品数量分布等。

数据预处理

首先,我们对交易数据进行了初步探索,计算了每个商品的出现频次和频率,并绘制了最常购买的前20种商品的图表。

itemFreq <- itemFrequency(sales)
basketSize = size(sales)
itemCount <- (itemFreq / sum(itemFreq)) * sum(basketSize)
orderedItemFreq <- sort(itemFrequency(sales), decreasing = TRUE)
itemFrequencyPlot(sales, topN = 20, horiz = TRUE)

关联规则挖掘

使用apriori算法进行关联规则挖掘,通过设置最小支持度和置信度来筛选出有意义的规则。本例中,最小支持度设为0.00012,最小置信度设为0.3,最小规则长度设为2。

rules <- apriori(sales, parameter = list(support = 0.00012, cOnfidence= 0.3, minlen = 2))
ordered_rules <- sort(rules, by = "lift")
inspect(ordered_rules[1:5])

规则可视化

arulesViz包提供了多种关联规则的可视化方式,如散点图等,帮助直观理解规则之间的关系。

plot(rules, cOntrol= list(jitter = 1.5, col = rev(brewer.pal(9, "Blues")[4:9])), shading = "lift", cex = 0.3)

商品类别间的关联规则

进一步分析时,将商品按类别汇总,再次进行关联规则挖掘。这一过程涉及到使用Python脚本处理原始数据,提取每个商品的类别信息,并生成新的交易数据集。

# Python脚本用于处理数据
# 省略具体代码...

处理后的数据用于R语言中进行进一步的分析,包括商品类别频率的图表展示和关联规则的挖掘。

sales_cat <- read.transactions("Sales_cat.txt", format = "basket", sep = " ")
rules_cat <- apriori(sales_cat, parameter = list(support = 0.001, cOnfidence= 0.1, minlen = 2))
ordered_rules_cat <- sort(rules_cat, by = "lift")
inspect(ordered_rules_cat[1:8])

规则评估指标

除了常见的支持度、置信度和提升度外,还可以计算其他评估指标,如Phi系数等,以全面评估规则的有效性。

interestMeasure(ordered_rules_cat[1:5], measure = 'phi', transactiOns= sales_cat)

附加说明

在实际应用中,可根据具体需求调整支持度和置信度的阈值,以获得更有价值的关联规则。深入解读挖掘出的规则,往往能揭示出有趣的商业洞察。


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文提供了一系列Python编程基础练习题,涵盖了列表操作、循环结构、字符串处理和元组特性等内容。通过这些练习题,读者可以巩固对Python语言的理解并提升编程技能。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 配置Windows操作系统以确保DAW(数字音频工作站)硬件和软件的高效运行可能是一个复杂且令人沮丧的过程。本文提供了一系列专业建议,帮助你优化Windows系统,确保录音和音频处理的流畅性。 ... [详细]
  • 解决C++编译错误C3867的方法
    本文详细介绍了在不同版本的Visual Studio中,如何正确处理成员函数指针以避免编译错误C3867。同时,提供了一个具体的代码示例及其优化方案。 ... [详细]
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文详细介绍了Python中列表的创建、访问、修改、排序及遍历等基本操作,帮助初学者快速掌握列表这一重要数据结构。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 本文介绍如何使用 Python 的 xlrd 库读取 Excel 文件,并将其数据处理后存储到数据库中。通过实际案例,详细讲解了文件路径、合并单元格处理等常见问题。 ... [详细]
  • 提升Tumblr爬虫效率与功能
    本文介绍了对之前开发的Tumblr爬虫脚本进行升级,整合了两个脚本的功能,实现了自动分页爬取博客内容,并支持配置文件以下载多个博客的不同格式文件。此外,还优化了图片下载逻辑。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
author-avatar
Du-kodak
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有