pbld | R Documentation |
Take a set of rules (a rule-base) and perform a Perception-based Logical
Deduction (PbLD) on each row of a given fsets()
object.
pbld( x, rules, partition, values, type = c("global", "local"), parallel = FALSE )
x |
Input to the inference. It should be an object of class
Each row represents a single case of inference. Columns should be named after predicates in rules' antecedents. |
rules |
A rule-base (a.k.a. linguistic description) either in the form
of the |
partition |
A |
values |
Crisp values that correspond to rows of membership degrees in
the |
type |
The type of inference to use. It can be either |
parallel |
Whether the processing should be run in parallel or not.
Parallelization is implemented using the |
Perform a Perception-based Logical Deduction (PbLD) with given rule-base
rules
on each row of input x
. Columns of x
are truth
values of predicates that appear in the antecedent part of rules
,
partition
together with values
determine the shape of
predicates in consequents: each element in values
corresponds to a
row of membership degrees in partition
.
A vector of inferred defuzzified values. The number of resulting
values corresponds to the number of rows of the x
argument.
Michal Burda
A. Dvořák, M. Štěpnička, On perception-based logical deduction and its variants, 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.
lcut()
, searchrules()
, fire()
, aggregateConsequents()
, defuzz()
# --- TRAINING PART --- # custom context of the RHS variable uptakeContext <- ctx3(7, 28.3, 46) # convert data into fuzzy sets d <- lcut(CO2, context=list(uptake=uptakeContext)) # split data into the training and testing set testingIndices <- 1:5 trainingIndices <- setdiff(seq_len(nrow(CO2)), testingIndices) training <- d[trainingIndices, ] testing <- d[testingIndices, ] # search for rules r <- searchrules(training, lhs=1:38, rhs=39:58, minConfidence=0.5) # --- TESTING PART --- # prepare values and partition v <- seq(uptakeContext[1], uptakeContext[3], length.out=1000) p <- lcut(v, name='uptake', context=uptakeContext) # do the inference pbld(testing, r, p, v)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.