基于Apriori算法的市场篮子分析:R语言订单商品聚合数据准备
R语言中Apriori算法的商品关联分析数据准备方案
针对你提供的订单-商品多行数据集,这里提供两种适配Apriori算法的数据准备方案:
方案1:按订单聚合商品为字符串/列表
如果需要将同一订单的商品合并到单行,可以用dplyr包的分组聚合功能处理非数值型数据:
library(dplyr) # 聚合为逗号分隔的商品字符串 df_agg_str <- df %>% group_by(order_id) %>% summarise(products = paste(product_name, collapse = ", ")) %>% ungroup() # 聚合为商品列表(更适合后续灵活处理) df_agg_list <- df %>% group_by(order_id) %>% summarise(products = list(product_name)) %>% ungroup()
方案2:转换为Apriori专用的交易对象(推荐)
做关联规则分析时,arules包是R中最常用的工具,它支持直接将你的原始数据集转换为transactions对象——这是Apriori算法的标准输入格式,无需手动聚合:
library(arules) # 将原始数据框转换为transactions对象 trans <- as(df, "transactions") # 查看转换后的交易记录 inspect(trans)
转换后每个订单对应一条交易记录,包含该订单下的所有商品,可直接传入apriori()函数执行分析:
# 运行Apriori算法 rules <- apriori(trans, parameter = list(supp = 0.1, conf = 0.8))
如果需要二进制矩阵格式(每行是订单,每列是商品,值为1表示该订单包含对应商品),可以进一步转换:
binary_matrix <- as(trans, "matrix")
内容的提问来源于stack exchange,提问作者Timothy Roy
相关产品推荐
相关产品推荐

