NBMiner: NBMiner: Mine NB-Frequent Itemsets or NB-Precise Rules

Description Usage Arguments Details Value References See Also Examples

View source: R/NBMiner.R

Description

Calls the Java implementation of the depth first search algorithm described in the paper in the references section to mine NB-frequent itemsets of NB-precise rules.

Usage

1
NBMiner(data, parameter, control = NULL)

Arguments

data

object of class transactions.

parameter

a list of parameters (automatically converted into an object of class NBMinerParameter). Reasonable parameters can be obtained using NBMinerParameters (see details section).

control

a list of control options (automatically converted into an object of class NBMinerControl). Currently only "verbose" and "debug" (both logical) are available.

Details

The parameters can be estimated from the data using NBMinerParameters.

Value

An object of class itemsets or rules (depending on the rules entry in parameter). The estimated precision is stored in the quality slot.

References

Michael Hahsler. A model-based frequency constraint for mining associations from transaction data. Data Mining and Knowledge Discovery, 13(2):137-166, September 2006.

See Also

NBMinerParameters, transactions-class, itemsets-class, rules-class

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
data("Agrawal")

## mine
param <- NBMinerParameters(Agrawal.db, pi=0.99, theta=0.5, maxlen=5,
    minlen=1, trim = 0, verb = TRUE, plot=TRUE) 
itemsets_NB <- NBMiner(Agrawal.db, parameter = param, 
    control = list(verb = TRUE, debug=FALSE))

inspect(head(itemsets_NB))

## remove patterns of length 1 (noise)
i_NB <- itemsets_NB[size(itemsets_NB)>1]
patterns <- Agrawal.pat[size(Agrawal.pat)>1]

## how many found itemsets are subsets of the patterns used in the db?
table(rowSums(is.subset(i_NB,patterns))>0)

## compare with the same number of the most frequent itemsets
itemsets_supp <-  eclat(Agrawal.db, parameter=list(supp=0.001))
i_supp <- itemsets_supp[size(itemsets_supp) >1]
i_supp <- head(sort(i_supp, by = "support"), length(i_NB))
table(rowSums(is.subset(i_supp,patterns))>0)

## mine NB-precise rules
param <- NBMinerParameters(Agrawal.db, pi=0.99, theta=0.5, maxlen=5,
    rules=TRUE, minlen=1, trim = 0) 
rules_NB <- NBMiner(Agrawal.db, parameter = param, 
    control = list(verb = TRUE, debug=FALSE))

inspect(head(rules_NB))

Example output

Loading required package: arules
Loading required package: Matrix

Attaching package:arulesThe following objects are masked frompackage:base:

    abbreviate, write

Loading required package: rJava
OpenJDK 64-Bit Server VM warning: Can't detect primordial thread stack location - find_vma failed
using Expectation Maximization for missing zero class
iteration = 1 , zero class = 3 , k = 0.9862909 , m = 277.9777 
iteration = 2 , zero class = 3 , k = 0.9862909 , m = 277.9777 
total items =  719 

parameter specification:
   pi theta   n         k           a minlen maxlen rules
 0.99   0.5 719 0.9862909 0.001371754      1      5 FALSE

algorithmic control:
 verbose debug
    TRUE FALSE

Depth-first NB-frequent itemset miner by Michael Hahsler
Database with 20000 transactions and 1000 unique items

3603 NB-frequent itemsets found.
    items                             precision
[1] {item217,item539}                 1.0000000
[2] {item222,item365,item478,item716} 1.0000000
[3] {item220,item452}                 1.0000000
[4] {item225,item299}                 0.9999951
[5] {item253,item438,item660,item849} 1.0000000
[6] {item214,item648}                 0.9993312

TRUE 
2603 
Eclat

parameter specification:
 tidLists support minlen maxlen            target  ext
    FALSE   0.001      1     10 frequent itemsets TRUE

algorithmic control:
 sparse sort verbose
      7   -2    TRUE

Absolute minimum support count: 20 

create itemset ... 
set transactions ...[716 item(s), 20000 transaction(s)] done [0.06s].
sorting and recoding items ... [656 item(s)] done [0.00s].
creating sparse bit matrix ... [656 row(s), 20000 column(s)] done [0.01s].
writing  ... [10873 set(s)] done [0.64s].
Creating S4 object  ... done [0.00s].

FALSE  TRUE 
  691  1912 

parameter specification:
   pi theta   n         k           a minlen maxlen rules
 0.99   0.5 719 0.9862909 0.001371754      1      5  TRUE

algorithmic control:
 verbose debug
    TRUE FALSE

Depth-first NB-frequent itemset miner by Michael Hahsler
Database with 20000 transactions and 1000 unique items

5617 NB-precide rules found.
    lhs                                 rhs       precision
[1] {item648}                        => {item548} 0.9982046
[2] {item1,item85}                   => {item520} 1.0000000
[3] {item508}                        => {item559} 1.0000000
[4] {item636,item648}                => {item853} 1.0000000
[5] {item76,item669,item722,item879} => {item808} 1.0000000
[6] {item99,item823}                 => {item860} 1.0000000

arulesNBMiner documentation built on May 2, 2019, 5:56 p.m.