R: Positive region based on fuzzy rough set

BC.positive.reg.FRST {RoughSets} | R Documentation

## 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.Introduction-FuzzyRoughSets`.

### Usage

    BC.positive.reg.FRST(decision.table, fuzzyroughset)

### Arguments

`decision.table` | a `"DecisionTable"` class representing the decision table. See `SF.asDecisionTable`.
`fuzzyroughset` | a `"LowerUpperApproximation"` class representing a fuzzy rough set that is produced by `BC.LU.approximation.FRST`.

### 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 Fuzzy-Rough 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. 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)

[Package RoughSets version 1.3-7 Index]