You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言Apriori关联规则:相似数据集结果异常排查求助

关联规则分析问题排查与解决

数据情况

在R语言中有两个小型二元数据集alpha和bravo,均包含199行4列,数据为0/1分布,二者分布近似但存在差异,可复现代码见文末。

目标

为两个数据集生成包含左项(LHS)、右项(RHS)、支持度(Support)、置信度(Confidence)、**提升度(Lift Ratio)**的关联规则。

问题

  1. 仅能从bravo中获取有效规则,alpha无法生成有效规则,需排查原因并解决;
  2. 使用apriori函数时,除bravo以逻辑格式输入的情况外,其余规则均带有=[0,1]后缀,且所有指标值均为1,需解释该现象。

已做工作

  • 确认两个数据集的数据类型与维度完全一致;
  • 分别以二元格式、逻辑格式、事务格式作为apriori函数的输入,对比输出结果;
  • 将支持度与置信度阈值调低至0.01,结果仍无改善(仅bravo以逻辑格式输入时可生成最多32条有效规则)。

关键现象

  • alpha以逻辑格式输入时无规则生成;以二元/事务格式输入时,生成的规则带有=[0,1]后缀,且所有指标值全为1;
  • bravo仅在以逻辑格式输入时可生成正常规则,其余格式输入时同样出现=[0,1]后缀与指标全为1的情况。

附:相关代码与数据集对比结果

# 可复现代码示例
set.seed(123)
# 生成alpha数据集
alpha <- data.frame(
  col1 = sample(c(0,1), 199, replace = TRUE, prob = c(0.9, 0.1)),
  col2 = sample(c(0,1), 199, replace = TRUE, prob = c(0.85, 0.15)),
  col3 = sample(c(0,1), 199, replace = TRUE, prob = c(0.92, 0.08)),
  col4 = sample(c(0,1), 199, replace = TRUE, prob = c(0.88, 0.12))
)
# 生成bravo数据集
bravo <- data.frame(
  col1 = sample(c(0,1), 199, replace = TRUE, prob = c(0.7, 0.3)),
  col2 = sample(c(0,1), 199, replace = TRUE, prob = c(0.65, 0.35)),
  col3 = sample(c(0,1), 199, replace = TRUE, prob = c(0.72, 0.28)),
  col4 = sample(c(0,1), 199, replace = TRUE, prob = c(0.68, 0.32))
)

# 转换为逻辑格式
alpha_logical <- as.data.frame(lapply(alpha, as.logical))
bravo_logical <- as.data.frame(lapply(bravo, as.logical))

# 转换为事务格式
library(arules)
alpha_trans <- as(alpha, "transactions")
bravo_trans <- as(bravo, "transactions")

# 运行apriori
# alpha逻辑格式
rules_alpha_log <- apriori(alpha_logical, parameter = list(supp=0.01, conf=0.01))
# alpha二元格式
rules_alpha_bin <- apriori(alpha, parameter = list(supp=0.01, conf=0.01))
# alpha事务格式
rules_alpha_trans <- apriori(alpha_trans, parameter = list(supp=0.01, conf=0.01))

# bravo逻辑格式
rules_bravo_log <- apriori(bravo_logical, parameter = list(supp=0.01, conf=0.01))
# bravo二元格式
rules_bravo_bin <- apriori(bravo, parameter = list(supp=0.01, conf=0.01))
# bravo事务格式
rules_bravo_trans <- apriori(bravo_trans, parameter = list(supp=0.01, conf=0.01))

数据集分布对比

数据集col1占比(1)col2占比(1)col3占比(1)col4占比(1)
alpha~10%~15%~8%~12%
bravo~30%~35%~28%~32%

内容的提问来源于stack exchange,提问作者Shawn Janzen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:03:23