rbcoverage {lfl} | R Documentation |
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("goedel", "goguen", "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 value represents the truth values (values in the
interval |
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 |
tnorm |
A character string representing a triangular norm to be used
(either |
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 whole rule will be evaluated (antecedent part together with consequent). |
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_.)
.
Value
A numeric value of the rule base coverage of given data.
Author(s)
Michal Burda
References
M. Burda, M. Štěpnička, Reduction of Fuzzy Rule Bases Driven by the Coverage of Training Data, in: Proc. 16th World Congress of the International Fuzzy Systems Association and 9th Conference of the European Society for Fuzzy Logic and Technology (IFSA-EUSFLAT 2015), Advances in Intelligent Systems Research, Atlantic Press, Gijon, 2015.
See Also
Examples
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, "goguen", TRUE) # returns 1
rules <- list(c('d', 'a'),
c('c', 'a', 'b'))
rbcoverage(x, rules, "goguen", TRUE) # returns 0.075)