R 语言 Apriori 关联规则算法

1、加载数据集,按照设定参数进行计算

"whole milk" 全脂牛奶

"other vegetables" 其他蔬菜

"rolls/buns" 面包卷

"yogurt" 酸奶

"soda" 汽水

"bottled water" 瓶装水

R 复制代码
# 安装并加载包
#install.packages("arules")
library(arules)

#Apriori 要求数据为事务型数据(transactions),两种常见来源:
#直接用 Groceries 内置购物篮数据集(最常用示例)
#普通数据框转换为事务格式
# 加载内置购物篮数据
data(Groceries)

# 查看所有商品列表
itemLabels(Groceries)

# 查看前 5 条交易的项集
inspect(head(Groceries, 5))

# 查看所有商品的出现频率(从高到低)
print(itemFrequencyPlot(Groceries, topN = 10))

# 运行Apriori算法
rules <- apriori(
  data = Groceries,
  parameter = list(
    supp = 0.01,    # 最小支持度1%
    conf = 0.3,     # 最小置信度30%
    target = "rules"
  )
)

# 查看结果
inspect(head(rules, 10))

2、查看结果

> inspect(head(rules, 10))

lhs rhs support confidence coverage lift count

1 {hard cheese} => {whole milk} 0.01006609 0.4107884 0.02450432 1.607682 99

2 {butter milk} => {other vegetables} 0.01037112 0.3709091 0.02796136 1.916916 102

3 {butter milk} => {whole milk} 0.01159126 0.4145455 0.02796136 1.622385 114

4 {ham} => {whole milk} 0.01148958 0.4414062 0.02602949 1.727509 113

5 {sliced cheese} => {whole milk} 0.01077783 0.4398340 0.02450432 1.721356 106

6 {oil} => {whole milk} 0.01128622 0.4021739 0.02806304 1.573968 111

7 {onions} => {other vegetables} 0.01423488 0.4590164 0.03101169 2.372268 140

8 {onions} => {whole milk} 0.01209964 0.3901639 0.03101169 1.526965 119

9 {berries} => {yogurt} 0.01057448 0.3180428 0.03324860 2.279848 104

10 {berries} => {other vegetables} 0.01026945 0.3088685 0.03324860 1.596280 101

R 复制代码
# 按提升度排序,看强关联规则
rules_sorted <- sort(rules, by = "lift", decreasing = TRUE)
inspect(head(rules_sorted, 5))

> inspect(head(rules_sorted, 5))

lhs rhs support confidence coverage lift

1 {citrus fruit, other vegetables} => {root vegetables} 0.01037112 0.3591549 0.02887646 3.295045

2 {tropical fruit, other vegetables} => {root vegetables} 0.01230300 0.3427762 0.03589222 3.144780

3 {beef} => {root vegetables} 0.01738688 0.3313953 0.05246568 3.040367

4 {citrus fruit, root vegetables} => {other vegetables} 0.01037112 0.5862069 0.01769192 3.029608

5 {tropical fruit, root vegetables} => {other vegetables} 0.01230300 0.5845411 0.02104728 3.020999

count

1 102

2 121

3 171

4 102

5 121

3、散点图

R 复制代码
#install.packages("arulesViz")
library(arulesViz)

# 散点图:支持度/置信度/提升度(映射为颜色)
plot(rules, measure = c("support", "confidence"), shading = "lift")

4、网络图

R 复制代码
# 网络图展示规则关系,前10条规则
plot(head(rules_sorted, 10), method = "graph")
R 复制代码
# 只找结果包含"牛奶"的规则
milk_rules <- subset(rules, rhs %in% "whole milk")
inspect(milk_rules)

5、数据转事物

R 复制代码
#-------------------数据转事物--------------
# 示例原始数据框
df <- data.frame(
  T1 = c("牛奶", "面包", "鸡蛋"),
  T2 = c("面包", "可乐"),
  T3 = c("牛奶", "可乐", "薯片"),
  T4 = c("牛奶", "面包", "可乐")
)

# 转为事务格式
trans <- as(df, "transactions")

# 执行Apriori
rules2 <- apriori(trans, parameter = list(supp = 0.2, conf = 0.5))
inspect(rules2)

#查看前5条规则
inspect(head(sort(rules2,by = "lift", decreasing = TRUE),5))
相关推荐
Asa121383 天前
R语言实现多组学因子分析(MOFA)
数据分析
漂着的圆木3 天前
Agent 功能参与度:Copilot 怎么算
sql·数据分析·agent·githubcopilot·度量
paopaokaka_luck3 天前
智慧社区综合服务小程序(人脸识别、AI问答、Echarts图形化分析)
前端·javascript·spring boot·spring·数据分析·echarts
Aloudata3 天前
语义层和SQL Copilot:一个降低写SQL门槛,一个统一业务逻辑
大数据·人工智能·数据分析·data agent·语义层
IT研究室3 天前
最新大数据毕业设计选题推荐-基于大数据的信用等级数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
paopaokaka_luck3 天前
考研政治刷题小程序(AI推荐题目、ECharts数据分析、章节练习与专项训练、模拟考试、错题本与收藏夹、学习打卡与目标管理、题库和组卷维护)
前端·javascript·spring boot·spring·数据分析·echarts
2601_960620374 天前
2026校招市场策略岗项目准备指南:调研/竞品/活动/竞赛4类项目
数据分析
SelectDB4 天前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析
SelectDB4 天前
Doris vs ClickHouse:企业 OLAP 走向下一阶段,两种技术路线如何选择
大数据·数据库·数据分析
AI职业加油站4 天前
数据要素价值释放年:大数据治理工程师,站上职业新风口
人工智能·学习·职场和发展·数据分析·职场发展