给定如下表所示的一个事务数据集,假定最小支持度为0.5,请给出Apriori算法生成频繁项集的过程。 TID Items T1 {牛奶,面包} T2 {面包,尿布,啤酒,鸡蛋} T3 {牛奶,尿布,啤酒,可乐} T4 {面包,牛奶,尿布,啤酒} T5 {面包,牛奶,尿布,可乐}
时间: 2023-10-10 20:05:41 浏览: 113
首先,我们需要扫描数据集,生成第一个频繁1项集,即每个单独的物品以及它们的支持度计数。根据题目中给定的事务数据集,我们可以得到以下频繁1项集:
{牛奶}, sup = 3
{面包}, sup = 4
{尿布}, sup = 3
{啤酒}, sup = 3
{鸡蛋}, sup = 1
{可乐}, sup = 2
接下来,我们需要使用Apriori算法生成更高阶的频繁项集。具体步骤如下:
1. 生成候选2项集:通过连接频繁1项集,生成所有可能的2项集。
{牛奶,面包}, sup = 2
{牛奶,尿布}, sup = 2
{牛奶,啤酒}, sup = 2
{面包,尿布}, sup = 3
{面包,啤酒}, sup = 2
{面包,鸡蛋}, sup = 1
{面包,可乐}, sup = 1
{尿布,啤酒}, sup = 2
{尿布,可乐}, sup = 2
2. 计算候选2项集的支持度计数:扫描数据集,统计每个候选2项集在数据集中出现的次数,得到它们的支持度计数。
3. 去除支持度小于最小支持度的2项集:根据题目中给定的最小支持度0.5,去除支持度小于2的候选2项集。得到以下频繁2项集:
{牛奶,面包}, sup = 2
{牛奶,尿布}, sup = 2
{牛奶,啤酒}, sup = 2
{面包,尿布}, sup = 3
{面包,啤酒}, sup = 2
{尿布,啤酒}, sup = 2
4. 生成候选3项集:通过连接频繁2项集,生成所有可能的3项集。
{牛奶,面包,尿布}, sup = 2
{牛奶,面包,啤酒}, sup = 2
{牛奶,尿布,啤酒}, sup = 2
{面包,尿布,啤酒}, sup = 2
5. 计算候选3项集的支持度计数:扫描数据集,统计每个候选3项集在数据集中出现的次数,得到它们的支持度计数。
6. 去除支持度小于最小支持度的3项集:根据题目中给定的最小支持度0.5,去除支持度小于3的候选3项集。由于所有候选3项集的支持度计数都小于3,因此没有频繁3项集。
因此,Apriori算法生成的频繁项集为:
{牛奶}, sup = 3
{面包}, sup = 4
{尿布}, sup = 3
{啤酒}, sup = 3
{牛奶,面包}, sup = 2
{牛奶,尿布}, sup = 2
{牛奶,啤酒}, sup = 2
{面包,尿布}, sup = 3
{面包,啤酒}, sup = 2
{尿布,啤酒}, sup = 2
阅读全文