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.