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

附加说明

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


推荐阅读
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
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社区 版权所有