Apriori
2024-04-23 15:46:44 0 举报
基于MapReduce的Apriori算法实现流程图
作者其他创作
大纲/内容
whole milk ,2
lineCount * context.getConfiguration().getDouble(\"sup\
cleanup
reduce
pastry,1soda,1coffee,1
Reducer
line.split(\
pastry ,3 whole milk ,3 soda,3
HashSet<String> prevItemset1
K阶频繁项
HashSet<String> candidateItemset in candidateItemsets
setup
new BufferedWriter(new OutputStreamWriter(os)).write(lineCount)
lineCount = readLine()
读取K-1阶频繁项文件
input
HashSet<String> Itemset
MAPPER
coffee,1
第一次MAPREDUCE过程
pastry soda coffee
soda,3
readLine()
itemset.containsAll(candidateItemset)
whole milk ,1 whole milk ,1
pastry ,1pastry ,1pastry ,1
candidateItemset1 ,1candidateItemset1 ,1candidateItemset1,1
List<HashSet<String>> candidateItemsets
pastry ,3
hasInfrequentSubSet()自定义函数,用于判断是否所有的自己都是频繁项
candidateItemset1,3
candidateItemset2,2
map
假设minSup=1
Itemset.size()==K
candidateItemset2 ,1candidateItemset2 ,1
whole milk,1 pastry,1 soda,1
FileSystem.open(inFile)
candidateItemset1,3candidateItemset3,3
pastry whole milk soda
lineCount
candidateItemset3,3
HADOOP FILE SYSTEM
groceries - groceries.csv
val>minSup
这里为了方便展示流程选取了一个3阶频繁项
List<HashSet<String>> prevItemsets
确定候选集出现的次数
1阶频繁项
K-1阶频繁项
whole milk pastry soda
pastry ,1 whole milk ,1 soda,1
假设minSup=2
OutPut
Mapper
第K次MAPREDUCE过程,K>2
soda,1 soda,1 soda,1
Shuffer
candidateItemset3,1candidateItemset3,1 candidateItemset3,1
根据K-1阶频繁项组合得到K阶频繁项候选集
minSup
List<HashSet<String>> candidateItemsets.add(Itemset)
HashSet<String> prevItemset2
K=prevItemset1.size()+1
收藏
0 条评论
下一页