1. Eclat算法簡介
數據格式
Apriori算法和FpGrowth都是從項集格式{TID: itemset}的事物集中挖掘頻繁模式,其中TID是事物標誌符,而itemset是事物TID中購買的商品。這種數據格式成為水平數據格式。數據也可以用項-TID集格式{item:TID_set}表示,其中item是項的名稱,而TID_set是包含item的事物標誌符的集合。這種數據格式稱為垂直數據格式。等價變換類算法(Eclat算法)
Eclat算法加入了倒排的思想,具體就是將事務數據中的項作為key,每個項對應的事務ID作為value。只需對數據進行一次掃描,算法的運行效率會很高。Ecalt算法的過程
通過掃描一次數據集,把水平格式的數據轉換成垂直格式;項集的支持度計數簡單地等於項集的TID集的長度;從k=1開始,可以根據先驗性質,使用頻繁k項集來構造候選(k+1)項集;通過取頻繁k項集的TID集的交,計算對應的(k+1)項集的TID集。重複該過程,每次k增加1,直到不能再找到頻繁項集或候選項集Eclat算法原理
與fp-growth和apriori算法不同,Eclat算法加入了倒排的思想,具體就是將事務數據中的項作為key,每個項對應的事務ID作為value
水平格式轉換成垂直格式通過轉換後的倒排表可以加快頻繁集生成速度。
計算頻繁1項集,結果為
由頻繁1項集生成頻繁2項集
由頻繁2項集生成頻繁3項集頻繁k項集生成頻繁k+1項集的過程與由1項集生成2項集的過程完全一致。
Eclat算法實例
2 算法實現過程