什么是闭频繁项集 closed patterns ?

所谓闭项集,就是指一个项集X,它的直接超集的支持度计数都不等于它本身的支持度计数。
如果闭项集同时是频繁的,也就是它的支持度大于等于最小支持度阈值,那它就称为闭频繁项集。

例如,有交易数据库
TID item
1 abc 
2 abcd 
3 bce
4 acde
5 de

因为项集{b,c}出现在TID为1,2,3的事务中,所以{b,c}的支持度计数为3。而{b,c}的直接超集:{a,b,c},{a,b,c,d}的支持度计数分别为2,1,都不等于{b,c}的支持度计数3,所以{b,c}为闭项集,如果支持度阈值为40%,则{b,c}也为闭频繁项集。
项集{a,b}出现在TID为1,2的事务中,其支持度计数为2。而它的直接超集{a,b,c}支持度计数也为2,所以{a,b}不是闭项集。
### 频繁项集的定义 频繁项集是指在一个数据集中,其出现次数超过预先设定的支持度阈值的一组项目集合。支持度衡量的是某个项集在整个事务集合中出现的比例[^1]。例如,在购物篮分析中,如果牛奶和面包一起购买的概率超过了给定的支持度阈值,则{牛奶, 面包}构成一个频繁项集。 ### 数据过于稀疏的意义 数据过于稀疏意味着大多数事务只包含了很少的一部分项目,而大量的项目组合几乎没有发生过。这种情况会导致很难找到满足最小支持度要求的频繁项集,从而极大地增加了关联规则挖掘的难度[^3]。具体来说,当数据非常稀疏时,许多潜在的频繁项集可能因为实际出现频次不足而被排除在外,这直接影响了后续规则生成的有效性。 ### 数据分布不平衡的含义 数据分布不平衡指的是在交易数据库中,某些项目的出现频率远高于其他项目的情况。这种不平衡可能会掩盖住一些重要的但相对少见的关系或模式。对于关联规则挖掘而言,极度倾斜的数据分布会使算法倾向于关注高频项目间的简单关系,而忽视那些涉及低频却可能是关键因素之间复杂交互的作用。 ### 清洗后数据无法挖掘关联规则的原因 即使经过彻底的数据清洗过程之后仍然未能成功挖掘出任何有价值的关联规则,主要原因可以归纳如下几点: #### 1. **缺乏足够的频繁项集** 由于设置了较高的最小支持度标准或者其他内在原因造成没有足够数量的频繁项集来支撑起进一步形成有意义的规则链条[^1]。 #### 2. **过高/过低的支持度与置信度门槛** 不当的选择这两个核心参数可能导致过滤掉了实际上有用的规则候选者们要么是因为他们不符合严格的评判准则要么就是太宽松以至于产生了大量无意义的结果[^2]。 #### 3. **样本规模不足以反映真实世界情况** 有时候即便是干净整齐的小型数据集也可能因为本身覆盖范围有限而不具备代表性,因此难以从中提炼普遍适用性强的大规模规律[^4]。 ```python from mlxtend.preprocessing import TransactionEncoder from mlxtend.frequent_patterns import apriori # Example dataset after cleaning but still unable to find any rules dataset = [['A'], ['B', 'C'], ['D']] te = TransactionEncoder() te_ary = te.fit(dataset).transform(dataset) df = pd.DataFrame(te_ary, columns=te.columns_) frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True) print(f"Frequent Itemsets:\n {frequent_itemsets}") ``` 以上代码展示了一个简单的例子,其中尽管完成了基础性的准备工作如转换成适合输入的形式等步骤,但由于原始资料本身的局限性(此处仅为示意),最终得到的频繁项集极其有限甚至为空白状态。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值