Last chance! 50% off unlimited learning
Sale ends in
D.max.discernibility.matrix.RST(decision.table)
"DecisionTable"
class representing the decision table. See SF.asDecisionTable
.
It should be noted that the function need the nominal decision attribute."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"
.$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.
D.local.discernibility.matrix.RST
, D.discretize.quantiles.RST
,D.discretize.equal.intervals.RST
, and D.global.discernibility.heuristic.RST
#################################################################
## 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