作者:Du-kodak | 来源:互联网 | 2024-11-24 19:13
本文探讨了如何利用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)
附加说明
在实际应用中,可根据具体需求调整支持度和置信度的阈值,以获得更有价值的关联规则。深入解读挖掘出的规则,往往能揭示出有趣的商业洞察。