Learn R Programming

RoughSets (version 1.0-0)

D.max.discernibility.matrix.RST: The maximal discernibility algorithm

Description

This is a function that implements the maximal discernibility algorithm based on rough set theory proposed by (Jan G. Bazan et al, 2000), for discretization tasks.

Usage

D.max.discernibility.matrix.RST(decision.table, ...)

Arguments

decision.table
a "DecisionTable" class representing the decision table. See SF.asDecisionTable.
...
other parameters.

Value

  • A class "Discretization" that contains the following components:
    • cut.values: a list representing cut values of each considered attributes.
    • type.method: a type of method which is used to define cut values.

      In this case, it is"max.discernibility".

    • type.task: a type of task which is"discretization".
    • model: a type of model which is"RST".

Details

Let $A = (U, A \cup {d})$ be a decision table. An arbitrary attribute $a \in A$ defines a sequence $v_{1}^a < v_{2}^a < \ldots < v_{n_{a}}^a$, where ${v_{1}^a, v_{2}^a, \ldots, v_{n_{a}}^a } = {a(x): x : \in U }$ and $n_{a} \leq n$. Then the set of all possible cuts on $a$ is denoted by

$C_{a} = { (a, \frac{v_{1}^a + v_{2}^a}{2}), (a, \frac{v_{2}^a + v_{3}^a}{2}), \ldots, (a, \frac{v_{n_{a}-1}^a + v_{n_{a}}^a}{2})}$

The set of possible cuts on all attributes is denoted by

$C_{A} = \cup_{a \in A}C_{a}$

The main points employed in this algorithm are to choose the cut $c_{max} \in C_{A}$ which discerns the largest number of pairs of objects in the decision-relative discernibility matrix $L = {(x, y) \in U \times U : d(x) \neq d(y)}$. Then insert $c_{max}$ into a list $D$ and remove it from $C_{A}$. All pairs of objects from $L$ discerned by $c_{max}$ are deleted as well.

This function will detect and perform converting the real into nominal values according to states FALSE in parameter nominal.attributes. And, it should be noted that the output of this function is a class containing cut values. In order to generate new decision table, SF.applyDecTable is executed. It should be noted that this algorithm needs a large memory and long time for discretization a big dataset.

References

Jan G. Bazan, Hung Son Nguyen, Sinh Hoa Nguyen, Piotr Synak, and Jakub Wroblewski, "Rough Set Algorithms in Classification Problem", Chapter 2 In: L. Polkowski, S. Tsumoto and T.Y. Lin (eds.): Rough Set Methods and Applications Physica-Verlag, Heidelberg, New York, p. 49 - 88 (2000).

See Also

D.local.discernibility.matrix.RST, D.discretize.quantiles.RST,

D.discretize.equal.intervals.RST, and D.global.discernibility.heuristic.RST

Examples

Run this code
#################################################################
## Example: Determine cut values and generate new decision table
#################################################################
 dt.ex1 <- data.frame(c(1, 1.2, 1.3, 1.4, 1.4, 1.6, 1.3), c(2, 0.5, 3, 1, 2, 3, 1),
                             c(1, 0, 0, 1, 0, 1, 1))
colnames(dt.ex1) <- c("a", "b", "d")
decision.table <- SF.asDecisionTable(dataset = dt.ex1, decision.attr = 3, indx.nominal = c(3))

cut.values <- D.max.discernibility.matrix.RST(decision.table)

## generate new decision table
new.decTable <- SF.applyDecTable(decision.table, cut.values)

Run the code above in your browser using DataLab