| Input: D: a transaction database; MinU: a user-specified threshold. |
| Output: the set of high-utility itemsets |
(1) | α = ∅ |
(2) | Calculate lu (α,i) for all items i ∈ I by scanning D, using a utility-binary; |
(3) | Secondary (α) = {i|i ∈ I∧lu (α,i) ≥MinU }; |
(4) | count0 = number of items in I; |
(5) | count1 = number of items in Secondary (α); |
(6) | while count0 – count1 > 0 do |
(7) | Remove each item iSecondary (α) from the transactions; |
(8) | Recalculate lu(α,i) for all items i ∈ I by scanning D; |
(9) | Secondary (α) = {i|i ∈ I∧lu(α,i) ≥MinU }; |
(10) | count0 = count1; |
(11) | count1 = number of items in Secondary (α); |
(12) | end while |
(13) | Let be the total order of TWU ascending values on Secondary (α); |
(14) | Scan D to remove each item iSecondary (α) from the transactions, sort items in each transaction according to , and delete empty transactions; |
(15) | Sort transactions in D according to T; |
(16) | Calculate the subtree utility su(α,i) of each item i ∈ Secondary (α) by scanning D, using a utility-bin array; |
(17) | Primary(α) = {i|i ∈ Secondary (α)∧su(α,i)≥MinU}; |
(18) | Search (α-D, Primary(α), Secondary (α), MinU); |