数据挖掘中的模式发现(一)频繁项集、频繁闭项集、最大频繁项集

Frequent Itemset(频繁项集)

I = { i 1 , i 2 , . . . , i m } I=\{i_1, i_2, ..., i_m\} I={ i1,i2,...,im}项(Item)的集合 D = { T 1 , T 2 , . . . , T n } D=\{T_1, T_2, ...,T_n\} D={ T1,T2,...,Tn} i ∈ [ 1 , n ] i∈[1,n] i[1,n]事务数据集(Transaction Data Itemsets),事务 T i T_i Ti I I I中若干项组成。

S S S为由项组成的一个集合, S = { i ∣ i ∈ I } S=\{i|i∈I\} S=

  • 64
    点赞
  • 177
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
好的,我可以为你解答有关 Python 频繁项集和 Apriori 算法的问题。 频繁项集是指在一个数据经常同时出现的一组项,例如在一个购物清单,经常一起被购买的商品就是一个频繁项集。Apriori 算法是一种挖掘频繁项集的算法,它的基本思想是利用项的支持度来筛选出频繁项集。 下面是一个简单的 Python 示例,演示如何使用 Apriori 算法从数据挖掘频繁项集: ```python # 导入需要的库 from itertools import combinations from collections import defaultdict # 定义 Apriori 算法 def apriori(data, min_support=0.5): # 计算项的支持度 item_counts = defaultdict(int) for trans in data: for item in trans: item_counts[item] += 1 # 筛选出频繁项集 freq_items = set() n = len(data) for item, count in item_counts.items(): support = count / n if support >= min_support: freq_items.add(item) k = 2 freq_sets = set(combinations(freq_items, k)) while freq_sets: item_counts = defaultdict(int) for trans in data: for item_set in freq_sets: if set(item_set).issubset(set(trans)): item_counts[item_set] += 1 freq_items = set() for item_set, count in item_counts.items(): support = count / n if support >= min_support: freq_items.add(item_set) freq_sets = set(combinations(freq_items, k)) k += 1 return freq_items # 测试数据 data = [ ['apple', 'banana', 'orange', 'pear'], ['banana', 'orange'], ['apple', 'banana', 'orange'], ['apple', 'pear'], ['apple', 'banana', 'orange', 'pear'] ] # 挖掘频繁项集 freq_items = apriori(data, 0.5) print(freq_items) ``` 在这个示例,我们定义了一个 `apriori` 函数来实现 Apriori 算法。该函数接受一个数据 `data` 和一个最小支持度 `min_support` 作为参数,并返回一个包含频繁项集合。在函数内部,我们首先计算每个项的支持度,然后筛选出频繁项集。接下来,我们以递增的大小迭代项的长度,直到没有更多的频繁项集为止。 在这个示例,我们使用了一个简单的示例数据,包含了一些购物清单。我们使用 `apriori` 函数来挖掘该数据频繁项集,并输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值