R 语言 零售分析 商品关联规则网络图 igraph 包节点布局

R阿木 发布于 2 天前 6 次阅读


商品关联规则网络图分析:R语言与igraph包的应用

在零售行业中,商品之间的关联性分析对于理解顾客购买行为、优化库存管理和制定营销策略具有重要意义。通过分析商品之间的关联规则,我们可以发现顾客在购买某些商品时,可能会同时购买其他商品,从而揭示潜在的购买模式。本文将使用R语言和igraph包,构建一个商品关联规则网络图,以可视化商品之间的关联关系。

环境准备

在开始之前,请确保您的R环境中已安装以下包:

R
install.packages("aricode")
install.packages("igraph")

数据准备

我们需要一个包含商品销售数据的表格。以下是一个简单的示例数据集,其中包含商品ID、销售数量和购买日期。

R
创建示例数据集
data <- data.frame(
ProductID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
Quantity = c(5, 3, 2, 4, 6, 1, 7, 2, 8, 3),
Date = as.Date(c("2021-01-01", "2021-01-02", "2021-01-03", "2021-01-04", "2021-01-05", "2021-01-06", "2021-01-07", "2021-01-08", "2021-01-09", "2021-01-10"))
)

关联规则挖掘

接下来,我们将使用aricode包中的apriori函数来挖掘商品之间的关联规则。

R
加载aricode包
library(aricode)

设置关联规则参数
set.seed(123)
minSupport <- 0.3 最小支持度
minConfidence <- 0.7 最小置信度

挖掘关联规则
rules <- apriori(data, parameter = list(minSupport = minSupport, minConfidence = minConfidence))

输出关联规则
print(rules)

构建网络图

现在我们已经得到了关联规则,接下来我们将使用igraph包来构建商品关联规则网络图。

R
加载igraph包
library(igraph)

创建节点
nodes <- V(graph = igraph::graph_from_data_frame(d = data.frame(ProductID = unique(data$ProductID))))

创建边
edges <- E(graph = igraph::graph_from_data_frame(d = data.frame(ProductID1 = data$ProductID, ProductID2 = data$ProductID)))

设置节点标签
names(nodes) <- data$ProductID

设置边权重
E(graph = igraph::graph_from_data_frame(d = data.frame(ProductID1 = data$ProductID, ProductID2 = data$ProductID))) <- data.frame(Weight = data$Quantity)

设置节点大小
V(graph = igraph::graph_from_data_frame(d = data.frame(ProductID1 = data$ProductID, ProductID2 = data$ProductID)))$size <- 10

设置节点颜色
V(graph = igraph::graph_from_data_frame(d = data.frame(ProductID1 = data$ProductID, ProductID2 = data$ProductID)))$color <- "blue"

设置节点标签字体大小
V(graph = igraph::graph_from_data_frame(d = data.frame(ProductID1 = data$ProductID, ProductID2 = data$ProductID)))$label.size <- 0.5

设置布局
layout <- layout_graph(graph = igraph::graph_from_data_frame(d = data.frame(ProductID1 = data$ProductID, ProductID2 = data$ProductID)), layout = "kamada_kawai")

绘制网络图
plot(graph = igraph::graph_from_data_frame(d = data.frame(ProductID1 = data$ProductID, ProductID2 = data$ProductID)), layout = layout, vertex.label.cex = 0.5, vertex.color = "blue", vertex.size = 10, edge.width = E(graph = igraph::graph_from_data_frame(d = data.frame(ProductID1 = data$ProductID, ProductID2 = data$ProductID)))$Weight)

结论

通过以上步骤,我们使用R语言和igraph包成功构建了一个商品关联规则网络图。这个网络图可以帮助我们直观地了解商品之间的关联关系,为零售行业提供决策支持。在实际应用中,您可以根据自己的需求调整关联规则参数,以挖掘出更有价值的关联规则。

后续工作

1. 对挖掘出的关联规则进行进一步分析,例如计算规则的重要性、提升度等。
2. 结合其他数据源,如顾客购买历史、商品属性等,丰富关联规则分析。
3. 将关联规则应用于实际业务场景,如推荐系统、库存管理等。

通过不断优化和扩展,商品关联规则网络图分析将为零售行业带来更多价值。