Research Article

PHUIMUS: A Potential High Utility Itemsets Mining Algorithm Based on Stream Data with Uncertainty

Algorithm 1

Description of PHUIMUS algorithm.
Input: A transaction uncertain data stream, utility table, for current window ,
   number of batches in a window (), number of transactions in a batch ().
Output: PHUIs for the current window
Step 1. Create a global table H to keep the items in the lexicographic order;
Step 2. Create the root of TWPUS-tree and initialize it as NULL;
Step 3. Create a global PUS-list to keep potential utility of items and transactions, whose number of row is
   , and number of column is equal to the number of items in utility table;
   while a new batch arrives do
    for transaction in batch do
Step 4.  Sort the items of in the lexicographic order;
Step 5.  Calculate potential utility of items and transactions, inserting them into PUS-list;
Step 6.  Update twpu value in the header table H;
Step 7.   If then
     If the item in isn’t exist in the TWPUS-tree then
      Create a new node for it, which consists by the item’s name and twpu counter array
                ;
     else
      Insert twpu value of to its twpu counter array’s th position, denoted as
              ;
     End if
Step 8.  else
     Perform one time left shift operation for all the twpu counter arrays;
     Remove the transactions of and insert transactions of in the PUS-list;
     Update them in the header table H;
     Delete the nodes that all the values in their corresponding twpu counter array are zero;
     If the item in isn’t exist in the TWPUS-tree then
      Create a new node for it, which consists by the item’s name and twpu counter array
                ;
     else
      Insert twpu value of to its twpu counter array’s rightest position, denoted as
              ;
     End if
     End if
    End for
    for each window do
     for each item from the bottom of H do
Step 9.   Add itemset to the global candidate list;
Step 10.   Create Prefix tree with its header table for item ;
Step 11.   For each item of do
       If then
       Delete from and to create conditional tree and its header table ;
       End if
      End for
Step 12.   Create all the candidate itemsets from , represented by ;
Step 13.   Add to the global candidate list;
Step 14.   Calculate PHUIs from the global candidate list by PUS-list;
Step 15.   Delete current bottom item of H, when it becomes NULL, jump out current loop;
     End for
    End for
    End while