Positive region based on fuzzy rough set
Description
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 B.IntroductionFuzzyRoughSets
.
Usage
1  BC.positive.reg.FRST(decision.table, fuzzyroughset)

Arguments
decision.table 
a 
fuzzyroughset 
a 
Details
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
.
Value
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.
Author(s)
Lala Septem Riza
References
R. Jensen and Q. Shen, "New Approaches to FuzzyRough Feature Selection", IEEE Trans. on Fuzzy Systems, vol. 19, no. 4, p. 824  838 (2009).
See Also
BC.LU.approximation.FRST
, BC.IND.relation.FRST
, BC.IND.relation.RST
,
BC.LU.approximation.RST
, and BC.positive.reg.FRST
.
Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65  ###########################################################
##### 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)
