if(Collections.frequency(ItemSet, distinctItemsList) >= support) { ItemList.addAll(ItemSet); FrequentItem1.put(ItemList, Collections.frequency(ItemSet, distinctItemsList)); System.out.println(FrequentItem1); } 上面的代码只是重复交易,而不是先给项目加上频率 ItemList是单个交易的数组列表 TID。…

2020年2月26日 0条评论 21点热度 阅读全文

我在mapper类中使用过setup()方法。还有一个用户定义的方法aprioriGenK()在mapper类中定义,并在map()方法中调用。 现在的问题是:我所知道的map方法都要求输入的每一行。假设有100行,则此方法调用了100次。相应地,每次都会调用称为aprioriGenK方法的map方法。但是,每次调用map方法时,都不需要在map方法内部调用aprioriGenK。即aprioriGenK方法的结果在map方法的所有输入行中都是相同的。 aprioriGenK方法占用大量CPU,因此,一次又一次调用…

2019年10月29日 0条评论 13点热度 阅读全文

我正在尝试在使用Hadoop时实现Apriori算法。我已经实现了Apriori算法的非分布式版本,但是由于对Hadoop和MapReduce的不熟悉,引起了许多担忧。 我要实现该算法的方式分为两个阶段: 1)在第一阶段,map reduce作业将在原始交易数据集上运行。该阶段的输出是一个文件,其中包含所有1个项目集及其对1的支持。 2)在第二阶段,我想读入上一阶段的输出,然后构造新的项目集。重要的是,我想然后在映射器中确定是否在数据集中仍找到任何新的项目集。我想像一下,如果我将原始数据集作为输入发送到映射器,它将…

2019年2月4日 0条评论 17点热度 阅读全文