基於海量資料的關聯規則挖掘(七)

2021-06-20 04:33:40 字數 1268 閱讀 3751

multihash 演算法

有時我們從

multistage

演算法的額外的步驟中獲取好處。這個

pcy的變形叫做

multihash[7]

演算法。不同於在連續的兩個步驟中使用兩個雜湊表,該演算法在一步中使用兩個雜湊演算法和兩個分離的雜湊表。如表

6.7所述。

在同一步裡使用兩個

hash

表的危險是每個雜湊表僅有

pcy演算法的一半的桶。只要

pcy演算法的桶的平均計數比支援度閾值低,我們就可以預見大部分的桶都是非頻繁桶,並可以在這兩個只有一半大小的雜湊表上操作完成。在這種情形下,我們選擇

multihash

方法。

對multihash

的第二步,每個

hash

表也會被轉換為乙個

bitmap

。注意,在圖

6.7中,兩個

bitmap

佔據的空間只有

pcy演算法的乙個

bitmap

的大小。項對

被放入候選集

c2的條件同

multistage:i

和j必須是頻繁的,且

對在兩個雜湊表中必須被

hash

到頻繁桶。 正如

multistage

演算法,在

multihash

演算法中,我們也可以不用限制只使用兩個

hash

表。在multihash

演算法的第一步中,我們也可以使用多個

hash

表。不過風險是桶的平均計數會超過閾值。在這種情況下,這裡會只有很少的非頻繁桶在每個

hash

表中。即使這樣,乙個項對必須被

hash

到每個hash

表的頻繁桶中並計數,並且,我們會發現,乙個非頻繁項對作為乙個候選的概率將上公升,而不是下降,無利反而有害。

圖3、multihash演算法使用多個hash表在第一步中,左圖為第一步處理,右圖為第二步處理

使用兩個雜湊表的危險是在第一步,每個雜湊表僅有

pcy雜湊表的一半的桶容量。只要

pcy桶的平均數目比支援的閾值低,我們就能操作兩個一半大小的雜湊表,其期望雜湊表的大多數桶不是頻繁的。這樣,在這種情形下,我們可以選擇

multihash

方法。

基於海量資料的關聯規則挖掘(五)

2.1基於hash的方法 首先是基於雜湊的演算法。基於雜湊的演算法仍是將所有所有資料放入記憶體的方法。只要在計算的過程中能夠滿足演算法對記憶體的大量需求,apriori 演算法能夠很好的執行。但在計算候選項集時特別是在計算候選項對 c2時需要消耗大量記憶體。針對 c2候選項對過大,一些演算法提出用來...

基於海量資料的關聯規則挖掘(十一)

上面我們介紹的都是基於 apriori 的頻集方法。即使進行了優化,但是 apriori 方法一些固有的缺陷還是無法克服 可能產生大量的候選集。當長度為1的頻集有10000個的時候,長度為2的候選集個數將會超過10m。還有就是如果要生成乙個很長的規則的時候,要產生的中間元素也是巨大量的。無法對稀有資...

使用mahout做海量資料關聯規則挖掘

mahout是乙個基於hadoop的分布式資料探勘開源專案 mahout本來是指乙個騎在大象上的人 掌握了關聯規則的基本演算法和使用,加上分布式關聯規則挖掘後,就可以處理基本的關聯規則挖掘工作了,實踐中只需要把握業務,理解資料便可游刃有餘。安裝mahout 騎在大象上的俠士必然需要一頭雄糾糾的大象,...