RoughSets (version 1.3-7)

BC.discernibility.mat.FRST: The decision-relative discernibility matrix based on fuzzy rough set theory

Description

This is a function that is used to build the decision-relative discernibility matrix based on FRST. It is a matrix whose elements contain discernible attributes among pairs of objects. By means of this matrix, we are able to produce all decision reducts of the given decision system.

Usage

BC.discernibility.mat.FRST(decision.table,
  type.discernibility = "standard.red", control = list())

Value

A class "DiscernibilityMatrix" containing the following components:

  • disc.mat: a matrix showing the decision-relative discernibility matrix \(M(\mathcal{A})\) which contains \(n \times n\) where \(n\) is the number of objects. It will be printed when choosing

    show.discernibilityMatrix = TRUE.

  • disc.list: the decision-relative discernibility represented in a list.

  • discernibility.type: a string showing the chosen type of discernibility methods.

  • type.model: in this case, it is "FRST".

Arguments

decision.table

a "DecisionTable" class representing the decision table. See SF.asDecisionTable. It should be noted that this case only supports the nominal/symbolic decision attribute.

type.discernibility

a string representing a type of discernibility. See in Section Details.

control

a list of other parameters.

  • type.relation: a type of fuzzy indiscernibility relation. The default value is type.relation = c("tolerance", "eq.1").

    See BC.IND.relation.FRST.

  • type.aggregation: a type of aggregation operator. The default value is type.aggregation = c("t.tnorm", "lukasiewicz").

    See BC.IND.relation.FRST.

  • t.implicator: a type of implicator operator. The default value is "lukasiewicz".

    See BC.LU.approximation.FRST.

  • type.LU: a type of method of lower and upper approximations. The default value is "implicator.tnorm".

    See BC.LU.approximation.FRST.

  • alpha.precision: a numeric value representing a precision variable. It is used when using "alpha.red" as type.discernibility. The default value is 0.05.

    See BC.LU.approximation.FRST.

  • show.discernibilityMatrix: a boolean value determining whether the discernibility matrix will be shown or not (NULL). The default value is FALSE.

  • epsilon: a numeric between 0 and 1 representing the \(\epsilon\) value on

    type.discernibility = "gaussian.red". It should be noted that when having nominal values on all attributes then \(\epsilon\) should be 0. The default value is 0.

  • delta: a numeric representing the \(\delta\) value on "gaussian" equations

    (see BC.IND.relation.FRST). The default value is 2.

  • range.object: a vector representing considered objects to construct the k-relative discernibility matrix. The default value is NULL which means that we are using all objects in the decision table.

Author

Lala Septem Riza

Details

In this function, we provide several approaches in order to generate the decision-relative discernibility matrix. Theoretically, all reducts are found by constructing the matrix that contains elements showing discernible attributes among objects. The discernible attributes are determined by a specific condition which depends on the selected algorithm. A particular approach can be executed by selecting a value of the parameter type.discernibility. The following shows the different values of the parameter type.discernibility corresponding approaches considered in this function.

  • "standard.red": It is adopted from (Tsang et al, 2008)'s approach. The concept has been explained briefly in B.Introduction-FuzzyRoughSets. In order to use this algorithm, we assign the control parameter with the following components:

    control = list(type.aggregation, type.relation, type.LU, t.implicator)

    The detailed description of the components can be seen in BC.IND.relation.FRST and

    BC.LU.approximation.FRST. Furthermore, in this case the authors suggest to use the "min" t-norm (i.e., type.aggregation = c("t.tnorm", "min")) and the implicator operator "kleene_dienes" (i.e., t.implicator = "kleene_dienes").

  • "alpha.red": It is based on (Zhao et al, 2009)'s approach where all reductions will be found by building an \(\alpha\)-discernibility matrix. This matrix contains elements which are defined by

    1) if \(x_i\) and \(x_j\) belong to different decision concept,

    \(c_{ij} = \{R : \mathcal{T}(R(x_i, x_j), \lambda) \le \alpha \}\),

    where \(\lambda = (R_{\alpha} \downarrow A)(u)\) which is lower approximation of FVPRS (See BC.LU.approximation.FRST).

    2) \(c_{ij}={\oslash}\), otherwise.

    To generate the discernibility matrix based on this approach, we use the control parameter with the following components:

    control = list(type.aggregation, type.relation, t.implicator, alpha.precision)

    where the lower approximation \(\lambda\) is fixed to type.LU = "fvprs". The detailed description of the components can be seen in BC.IND.relation.FRST and BC.LU.approximation.FRST. Furthermore, in this case the authors suggest to use \(\mathcal{T}\)-similarity relation

    e.g., type.relation = c("transitive.closure", "eq.3"),

    the "lukasiewicz" t-norm (i.e., type.aggregation = c("t.tnorm", "lukasiewicz")), and alpha.precision from 0 to 0.5.

  • "gaussian.red": It is based on (Chen et al, 2011)'s approach. The discernibility matrix contains elements which are defined by:

    1) if \(x_i\) and \(x_j\) belong to different decision concept,

    \(c_{ij}= \{R : R(x_i, x_j) \le \sqrt{1 - \lambda^2(x_i)}\}\),

    where \(\lambda = inf_{u \in U}\mathcal{I}_{cos}(R(x_i, u), A(u)) - \epsilon\). To generate fuzzy relation \(R\) , we use the fixed parameters as follows:

    t.tnorm = "t.cos" and type.relation = c("transitive.kernel", "gaussian").

    2) \(c_{ij}={\oslash}\), otherwise.

    In this case, we need to define control parameter as follows.

    control <- list(epsilon)

    It should be noted that when having nominal values on all attributes then epsilon (\(\epsilon\)) should be 0.

  • "min.element": It is based on (Chen et al, 2012)'s approach where we only consider finding the minimal element of the discernibility matrix by introducing the binary relation \(DIS(R)\) the relative discernibility relation of conditional attribute \(R\) with respect to decision attribute \(d\), which is computed as

    \(DIS(R) = \{(x_i, x_j) \in U \times U: 1 - R(x_i, x_j) > \lambda_i, x_j \notin [x_i]_d\}\),

    where \(\lambda_i = (Sim(R) \downarrow [x_i]_d)(x_i)\) with \(Sim(R)\) a fuzzy equivalence relation. In other words, this algorithm does not need to build the discernibility matrix. To generate the fuzzy relation \(R\) and lower approximation \(\lambda\), we use the control parameter with the following components:

    control = list(type.aggregation, type.relation, type.LU, t.implicator).

    The detailed description of the components can be seen in BC.IND.relation.FRST and

    BC.LU.approximation.FRST.

References

D. Chen, L. Zhang, S. Zhao, Q. Hu, and P. Zhu, "A Novel Algorithm for Finding Reducts with Fuzzy Rough Sets", IEEE Trans. on Fuzzy Systems, vol. 20, no. 2, p. 385 - 389 (2012).

D. G. Chen, Q. H. Hu, and Y. P. Yang, "Parameterized Attribute Reduction with Gaussian Kernel Based Fuzzy Rough Sets", Information Sciences, vol. 181, no. 23, p. 5169 - 5179 (2011).

E. C. C. Tsang, D. G. Chen, D. S. Yeung, X. Z. Wang, and J. W. T. Lee, "Attributes Reduction Using Fuzzy Rough Sets", IEEE Trans. Fuzzy Syst., vol. 16, no. 5, p. 1130 - 1141 (2008).

S. Zhao, E. C. C. Tsang, and D. Chen, "The Model of Fuzzy Variable Precision Rough Sets", IEEE Trans. on Fuzzy Systems, vol. 17, no. 2, p. 451 - 467 (2009).

See Also

BC.discernibility.mat.RST, BC.LU.approximation.RST, and BC.LU.approximation.FRST

Examples

Run this code
#######################################################################
## Example 1: Constructing the decision-relative discernibility matrix
## In this case, we are using The simple Pima dataset containing 7 rows. 
#######################################################################
data(RoughSetData)
decision.table <- RoughSetData$pima7.dt 

## using "standard.red"
control.1 <- list(type.relation = c("tolerance", "eq.1"), 
                type.aggregation = c("t.tnorm", "min"), 
                t.implicator = "kleene_dienes", type.LU = "implicator.tnorm")
res.1 <- BC.discernibility.mat.FRST(decision.table, type.discernibility = "standard.red", 
                                    control = control.1)

## using "gaussian.red"
control.2 <- list(epsilon = 0)
res.2 <- BC.discernibility.mat.FRST(decision.table, type.discernibility = "gaussian.red",
                                    control = control.2)

## using "alpha.red"
control.3 <- list(type.relation = c("tolerance", "eq.1"), 
                type.aggregation = c("t.tnorm", "min"),
                t.implicator = "lukasiewicz", alpha.precision = 0.05)
res.3 <- BC.discernibility.mat.FRST(decision.table, type.discernibility = "alpha.red", 
                                    control = control.3)

## using "min.element"
control.4 <- list(type.relation = c("tolerance", "eq.1"), 
                type.aggregation = c("t.tnorm", "lukasiewicz"),
                t.implicator = "lukasiewicz", type.LU = "implicator.tnorm")
res.4 <- BC.discernibility.mat.FRST(decision.table, type.discernibility = "min.element", 
                                    control = control.4)

#######################################################################
## Example 2: Constructing the decision-relative discernibility matrix
## In this case, we are using the Hiring dataset containing nominal values
#######################################################################
if (FALSE) data(RoughSetData)
decision.table <- RoughSetData$hiring.dt 

control.1 <- list(type.relation = c("crisp"), 
                type.aggregation = c("crisp"),
                t.implicator = "lukasiewicz", type.LU = "implicator.tnorm")
res.1 <- BC.discernibility.mat.FRST(decision.table, type.discernibility = "standard.red", 
                                    control = control.1)

control.2 <- list(epsilon = 0)
res.2 <- BC.discernibility.mat.FRST(decision.table, type.discernibility = "gaussian.red",
                                    control = control.2)

Run the code above in your browser using DataLab