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

如何获取关联规则集的合并支持度并验证目标样本覆盖情况?

解决方法

要提取规则集的所有LHS并过滤数据集,统计覆盖的versicolor样本数,可以按以下步骤操作:

1. 提取所有规则的左部(LHS)

用arules包的lhs()函数直接提取规则对象的左部条件:

# 提取规则集的所有左部条件
rule_lhs <- lhs(rules_1)

2. 匹配数据集样本与规则LHS

使用is.subset()函数生成样本-规则匹配矩阵,再通过apply()标记每个样本是否满足任意一条规则的LHS:

# 生成匹配矩阵:每行对应一个样本,每列对应一条规则,TRUE表示样本满足该规则LHS
matches_matrix <- is.subset(rule_lhs, iris, sparse = FALSE)
# 标记样本是否被任意一条规则覆盖
is_covered <- apply(matches_matrix, 1, any)

3. 统计覆盖情况

基于标记结果筛选样本,统计目标样本的覆盖数量与比例:

# 筛选被规则覆盖的样本
covered_samples <- iris[is_covered, ]

# 计算关键指标
total_versicolor <- sum(iris$Species == "versicolor")
covered_versicolor <- sum(covered_samples$Species == "versicolor")

cat("规则集覆盖的versicolor样本数:", covered_versicolor, "\n")
cat("versicolor样本覆盖比例:", round(covered_versicolor / total_versicolor, 2), "\n")

简化写法

如果不需要保留匹配矩阵,可直接合并为一行代码完成筛选:

covered_samples <- iris[apply(is.subset(lhs(rules_1), iris, sparse = FALSE), 1, any), ]

运行后就能直观看到当前规则集覆盖了多少目标样本,判断是否覆盖全部50条versicolor数据。

内容的提问来源于stack exchange,提问作者Rory Ellis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:10:17