Learn R Programming

lfl (version 1.0)

rbcoverage: Compute rule base coverage of data

Description

This function computes rule base coverage, i.e. a an average of maximum membership degree at which each row of data fires the rules in rule base.

Usage

rbcoverage(x, 
           rules,
           tnorm=c("minimum", "product", "lukasiewicz"),
           onlyAnte=TRUE)

Arguments

x
Data for the rules to be evaluated on. Could be either a numeric matrix or numeric vector. If matrix is given then the rules are evaluated on rows. Each value of the vector or column of the matrix represents a predicate - it's numeric valu
rules
Either an object of class "farules" or list of character vectors where each vector is a rule with consequent being the first element of the vector. Elements of the vectors (predicate names) must correspond to the x's names (of
tnorm
A character string representing a triangular norm to be used (either "minimum", "product", or "lukasiewicz") or an arbitrary function that takes a vector of truth values and returns a t-norm computed
onlyAnte
TRUE if only antecedent-part of a rule should be evaluated. Antecedent-part of a rule are all predicates in rule vector starting from the 2nd position. (First element of a rule is the consequent - see above.)

If FALSE, then the wh

Value

  • A numeric value of the rule base coverage of given data.

Details

Let $f_{ij}$ be a truth value of $i$-th rule on $j$-th row of data x. Then $m_j = max(f_{.j})$ is a maximum truth value that is reached for the $j$-th data row with the rule base. Then the rule base coverage is a mean of that truth values, i.e. $rbcoverage = mean(m_.)$.

See Also

fire, reduce

Examples

Run this code
x <- matrix(1:20 / 20, nrow=2)
    colnames(x) <- letters[1:10]

    rules <- list(c('a', 'c', 'e'),
                  c('b'),
                  c('d', 'a'),
                  c('c', 'a', 'b'))
    rbcoverage(x, rules, "product", TRUE)  # returns 1


    rules <- list(c('d', 'a'),
                  c('c', 'a', 'b'))
    rbcoverage(x, rules, "product", TRUE)  # returns 0.075)

Run the code above in your browser using DataLab