reduce: Reduce the size of rule base

Description Usage Arguments Details Value Author(s) References See Also

View source: R/reduce.R

Description

From given rule base, select such set of rules that influence mostly the rule base coverage of the input data.

Usage

1
2
3
4
5
6
7
8
reduce(
  x,
  rules,
  ratio,
  tnorm = c("goedel", "goguen", "lukasiewicz"),
  tconorm = c("goedel", "goguen", "lukasiewicz"),
  numThreads = 1
)

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 [0, 1]).

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 columns if x is a matrix).

ratio

A percentage of rule base coverage that must be preserved. It must be a value within the [0, 1] interval. Value of 1 means that the rule base coverage of the result must be the same as coverage of input rules. A sensible value is e.g. 0.9.

tnorm

Which t-norm to use as a conjunction of antecedents. The default is "goedel".

tconorm

Which t-norm to use as a disjunction, i.e. to combine multiple antecedents to get coverage of the rule base. The default is "goedel".

numThreads

How many threads to use for computation. Value higher than 1 causes that the algorithm runs in several parallel threads (using the OpenMP library).

Details

From a given rulebase, a rule with greatest coverage is selected. After that, additional rules are selected that increase the rule base coverage the most. Addition stops after the coverage exceeds original coverage * ratio.

Note that the size of the resulting rule base is not necessarily minimal because the algorithm does not search all possible combination of rules. It only finds a local minimum of rule base size.

Value

Function returns an instance of class farules() or a list depending on the type of the rules argument.

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

rbcoverage(), farules()


beerda/lfl documentation built on Oct. 17, 2020, 8:57 p.m.