apriori mapreduce_MapReduce
Apriori算法是一種挖掘頻繁項集的算法,用于發(fā)現數據中的關(guān)聯(lián)規則,MapReduce是一種編程模型,用于處理大規模數據集,將Apriori算法與MapReduce結合,可以(?Д?)在分布式環(huán)境下高效地挖掘頻繁項集。
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)Apriori算法原理
Apriori算法的核心思想是通過(guò)連接k1項集生成k項集,然后通過(guò)剪枝去掉不滿(mǎn)足最小支持度的候選項集,具體步驟如下:
1、掃描數據集,計算每個(gè)項集的支持度,得到1項頻繁項集。
2、從k1項頻繁項集中生成k項候選項集。
4、去掉不滿(mǎn)足最小支持度的k項候選項集,得到k項頻繁項集。
5、重復步驟24,直到無(wú)法生成新的頻繁項集。
MapReduce編程模型包括兩個(gè)階段:Map階段和Reduce階段。
1、Map階段:將輸入數據拆分成多個(gè)數據(°ロ°) !塊,每個(gè)數據塊由一個(gè)Map任務(wù)處理,Map任務(wù)對數據塊進(jìn)行處理,生成鍵值對作為中間結果。
2、Reduce階段:將具有相同鍵的鍵值對分組,由一個(gè)Reduce任務(wù)處理,Reduce任務(wù)對分組(′ω`)后的鍵值對進(jìn)(jin)行處理,生成最終結果。
Apriori算法在MapReduce上(shang)的實(shí)現
Map階段
1、每個(gè)Map任務(wù)負責處理一個(gè)數據分片。
3、輸出每個(gè)子集及其支持度作為(???)中間結果。
1、每個(gè)Reduce任務(wù)負責處理一個(gè)鍵(即一個(gè)項集??)。
2、對于每個(gè)鍵,合并所有Map任?務(wù)輸出的該鍵的支持度,得到該鍵的總支持度。
3、如果該鍵的總支持度大于等于最小支持度,則輸出該鍵及其總支(╯°□°)╯持度作為頻??繁項集。
迭代過(guò)程
1、將上一輪的頻繁項集作為輸入,生成新一輪的候選項集。
2、對新一輪的候選項集執行MapReduce任務(wù),得到新一輪的頻繁項集。
3、重復步驟12,直到無(wú)法生成新的頻繁項集。
通過(guò)以上步驟,可以在分布式環(huán)境下高效地(′?_?`)挖掘頻繁項集。
