View source: R/BasicFuzzyRoughSets.R
BC.positive.reg.FRST | R Documentation |
This is a function that implements a fundamental concept of fuzzy rough set theory which is
the positive region and the corresponding degree of dependency. The explanation about this concept can be seen
in Introduction-FuzzyRoughSets
.
BC.positive.reg.FRST(decision.table, fuzzyroughset)
decision.table |
a |
fuzzyroughset |
a |
In order to compute the function, we need to calculate the indiscernibility relation by executing BC.IND.relation.FRST
and the lower and upper approximations by calling BC.LU.approximation.FRST
.
A class "PositiveRegion"
containing the following components:
positive.freg
: a vector representing membership degrees to the fuzzy positive region for each index of objects.
degree.dependency
: a value expressing the degree of dependency.
type.model
: a string representing type of models. In this case, it is "FRST"
which means fuzzy rough set theory.
Lala Septem Riza
R. Jensen and Q. Shen, "New Approaches to Fuzzy-Rough Feature Selection", IEEE Trans. on Fuzzy Systems, vol. 19, no. 4, p. 824 - 838 (2009).
BC.LU.approximation.FRST
, BC.IND.relation.FRST
, BC.IND.relation.RST
,
BC.LU.approximation.RST
, and BC.positive.reg.FRST
.
###########################################################
##### 1. Example: Using a simple decision table containing
##### nominal values for the decision attribute
###########################################################
dt.ex1 <- data.frame(c(-0.4, -0.4, -0.3, 0.3, 0.2, 0.2),
c(-0.3, 0.2, -0.4, -0.3, -0.3, 0),
c(-0.5, -0.1, -0.3, 0, 0, 0),
c("no", "yes", "no", "yes", "yes", "no"))
colnames(dt.ex1) <- c("a", "b", "c", "d")
decision.table <- SF.asDecisionTable(dataset = dt.ex1, decision.attr = 4)
## let us consider the first and second attributes only as conditional attribute
condAttr <- c(1, 2)
## let us consider the fourth attribute as decision attribute
decAttr <- c(4)
#### Calculate fuzzy indiscernibility relation ####
control.ind <- list(type.aggregation = c("t.tnorm", "lukasiewicz"),
type.relation = c("tolerance", "eq.1"))
control.dec <- list(type.aggregation = c("crisp"), type.relation = "crisp")
IND.condAttr <- BC.IND.relation.FRST(decision.table, attributes = condAttr,
control = control.ind)
IND.decAttr <- BC.IND.relation.FRST(decision.table, attributes = decAttr,
control = control.dec)
#### Calculate fuzzy lower and upper approximation using type.LU :
#### "implicator.tnorm"
control <- list(t.implicator = "lukasiewicz")
FRST.LU <- BC.LU.approximation.FRST(decision.table, IND.condAttr, IND.decAttr,
type.LU = "implicator.tnorm", control = control)
#### Determine positive regions ####
res.1 <- BC.positive.reg.FRST(decision.table, FRST.LU)
###########################################################
##### 2. Example: Using the housing decision table containing
##### continuous values for the decision attribute
###########################################################
## In this case, we are using the housing dataset containing 7 objects
data(RoughSetData)
decision.table <- RoughSetData$housing7.dt
conditional.attr <- c(1, 2)
decision.attr = c(14)
control.ind <- list(type.aggregation = c("t.tnorm", "lukasiewicz"),
type.relation = c("tolerance", "eq.1"))
#### Calculate fuzzy indiscernibility relation ####
IND.condAttr <- BC.IND.relation.FRST(decision.table, attributes = conditional.attr,
control = control.ind)
IND.decAttr <- BC.IND.relation.FRST(decision.table, attributes = decision.attr,
control = control.ind)
#### Calculate fuzzy lower and upper approximation using type.LU :
#### "implicator.tnorm"
control <- list(t.implicator = "lukasiewicz", t.tnorm = "lukasiewicz")
FRST.LU <- BC.LU.approximation.FRST(decision.table, IND.condAttr, IND.decAttr,
type.LU = "implicator.tnorm", control = control)
#### Determine fuzzy regions ####
res.2 <- BC.positive.reg.FRST(decision.table, FRST.LU)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.