热门标签 | 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)

附加说明

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


推荐阅读
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 本文介绍了多维缩放(MDS)技术,这是一种将高维数据映射到低维空间的方法,通过保持原始数据间的关系,以便于可视化和分析。文章详细描述了MDS的原理和实现过程,并提供了Python代码示例。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 本文探讨了在已知最终数组尺寸不会超过5000x10的情况下,如何利用预分配和调整大小的方法来优化Numpy数组的创建过程,以提高性能并减少内存消耗。 ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本文介绍了使用Python和C语言编写程序来计算一个给定数值的平方根的方法。通过迭代算法,我们能够精确地得到所需的结果。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 解析Java虚拟机HotSpot中的GC算法实现
    本文探讨了Java虚拟机(JVM)中HotSpot实现的垃圾回收(GC)算法,重点介绍了根节点枚举、安全点及安全区域的概念和技术细节,以及这些机制如何影响GC的效率和准确性。 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 贡献转移在计算每个元素的作用的时候,我们可以通过反向枚举作用效果,添加到作用元素的身上,这种方法叫做贡献转移。更正式的说, ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
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社区 版权所有