首页 > 试题广场 >

生成频繁项集

[编程题]生成频繁项集
  • 热度指数:73 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
频繁项集是指在交易数据中出现频率超过指定阈值的项集,常用于关联规则挖掘,尤其常见于Apriori算法。

输入描述:
- 第一行包含一个整数T,表示交易的数量。
- 接下来的T行,每行包含一个交易数据,交易数据由一组项组成,项之间用逗号分隔。项用英文小写字母的字符串表示。
- 最后一行包含一个整数min_support,表示频繁项集出现次数的阈值,用于过滤频繁项集。


输出描述:
输出所有频繁项集,每个项集以逗号分隔,并按出现频率从高到低排序。每个频繁项集的输出格式为:
{项1, 项2, ..., 项N},其中N为项集的大小。
示例1

输入

2
eggs,diaper,diaper
bread,bread,apple,milk,milk
1

输出

{diaper}
{bread}
{milk}
{eggs}
{apple}
{eggs, diaper}

备注:
支持numpy,scipy,pandas等库
头像 牛客题解官
发表于 2025-02-05 16:07:32
频繁项集就是在交易数据中出现频率超过指定阈值的项集,常用于关联规则挖掘。 通俗点说,频繁项集就是交易数据中出现得“够多”的项集。 生成频繁项集可以归结为如下的递归过程 从频繁k项集中组合出候选k+1项集 统计候选k+1项集在交易数据中出现的次数 过滤出频繁k+1项集(出现次数大于等于min_sup 展开全文