基於Hash技術改進Apriori演算法

2021-05-28 15:41:25 字數 1626 閱讀 5611

**

基於hash技術改進的apriori演算法,也是採用兩階段挖掘的思想:第一階段挖掘頻繁項集,第二階段挖掘頻繁關聯規則。

基於hash技術來產生頻繁項集,能夠在一定程度上減少由呼叫apriorigen方法生成候選頻繁項集的開銷。

park等人研究發現,候選頻繁2-項集生成的過程中,計算量比較大,引入雜湊(hash)技術來解決這個問題,以改進apriori演算法。

同時,基於hash技術生成候選頻繁2-項集,能夠擴充套件到生成候選頻繁k-項集。對頻繁關聯規則的挖掘,與apriori演算法執行的過程是相同的。

基於hash技術改進的apriori演算法,也是分為兩步執行:

1、從事務資料庫(d)中挖掘出所有頻繁項集。

支援度大於最小支援度minsup的項集(itemset)稱為頻集(frequent itemset)。

首先,挖掘頻繁1-項集:

需要掃瞄事務資料庫,挖掘出頻繁1-項集。

其次,挖掘頻繁2-項集:

這裡主要是採用hash技術產生候選頻繁2-項集。

在挖掘頻繁1-項集的過程中,也就是掃瞄事務資料庫的時候,直接根據選擇的hash策略,將掃瞄到的事務直接組合成2-項集,並對映到對應的hash桶中,通過測試hash桶中的2-項集來產生候選頻繁2-項集。具體做法為:設定測試標準引數 minsup * |d|,如果某個hash桶中的2-項集計數小於 minsup * |d|,肯定不會是頻繁2-項集,排除,然後根據hash桶中的項集的支援計數來選擇候選頻繁2-項集。

然後,對k(k>2),遞推挖掘:

與apriori演算法相同,採用遞推的方式在k>2的條件下,來挖掘頻繁k-項集(k>2),具體做法是:

在挖掘出候選頻繁k-項集(ck)之後,根據最小置信度minsup來篩選,得到頻繁k-項集。

最後合併全部的頻繁k-項集(k>0)。

挖掘頻繁項集的演算法描述如下:

(1) l1 = find_frequent_1-itemsets(d); // 挖掘頻繁1-項集,掃瞄事務資料庫同時,將2-項集對映到hash桶中

(2) c2 = hash桶中滿足支援計數的2-項集; // 生成候選頻繁2-項集

(3) l2 = 根據c2支援度生成頻繁2-項集; // 生成頻繁2-項集

(4) for (k=3;lk-1 ≠φ ;k++)

(11)           lk = // 滿足最小支援度的k-項集即為頻繁k-項集

(12) }

(13) return l= ∪ k lk; // 合併頻繁k-項集(k>0)

2、基於第1步挖掘到的頻繁項集,繼續挖掘出全部的頻繁關聯規則。

與apriori演算法第二步相同。

置信度大於給定最小置信度minconf的關聯規則稱為頻繁關聯規則(frequent association rule)。在這一步,首先需要從頻繁項集入手,首先挖掘出全部的關聯規則(或者稱候選關聯規則),然後根據minconf來得到頻繁關聯規則。

挖掘頻繁關聯規則的演算法描述如下:

(1) 初始狀態 : l = ∪ k lk; ar = φ; // l是頻繁項集集合,ar是頻繁關聯規則集合

(2) for all λk (λk是l的元素,是乙個k-頻繁項集,大小為n)

(7)           }

(8)    }

(9) return ar;

webservice 技術改進

webservice 技術改進 1.不同系統不同語言之間的互動 基於http協議進行傳輸,使用rest服務實現ws 2.不同系統相同語言之間的互動 使用rpc romate process call 3.單個產品的架構演進 a.初始階段架構 初始階段的小型系統,應用程式,資料庫,檔案等資源都在一台伺...

Hash技術初涉

例題poj 2406 解決思路鏈結 hash解決 include include include include using namespace std typedef long long ll char s 1001000 輸入字串 int mod 10009 模 int len,k 131 s ...

基於Co training的改進演算法

co expectation maximizationalgorithm nigam 和ghani 2002 提出通過 隨機分割的特性,手動地對多個檢視進行聯合訓練,即使沒有自然的多個檢視,也可以提高效能。他們還提出了一 種co em 演算法,它擴充套件 了co training 演算法的原始引導方...