RoughSets (version 1.3-7)

FS.nearOpt.fvprs.FRST: The near-optimal reduction algorithm based on fuzzy rough set theory

Description

This is a function implementing the near-optimal reduction algorithm by employing fuzzy variable precision rough sets (FVPRS) for feature selection based on FRST proposed by (Zhao et al, 2009).

Usage

FS.nearOpt.fvprs.FRST(decision.table, alpha.precision = 0.05)

Value

A class "FeatureSubset" that contains the following components:

  • reduct: a list representing a single reduct. In this case, it could be a superreduct or just a subset of features.

  • type.method: a string representing the type of method which is "near.optimal.fvprs".

  • type.task: a string showing the type of task which is "feature selection".

  • model: a string representing the type of model. In this case, it is "FRST" which means fuzzy rough set theory.

Arguments

decision.table

an object of a "DecisionTable" class representing a decision table. See SF.asDecisionTable. In this case, the decision attribute must be nominal.

alpha.precision

a numeric value representing variable precision of FVPRS.

See BC.LU.approximation.FRST.

Author

Lala Septem Riza

Details

The near-optimal algorithm is an algorithm to find one reduct only rather than all reducts. It modifies the \(\alpha\)-reduction based on discernibility matrix by using a heuristic algorithm. To get basic knowledge about discernibility matrix, users can refers to the "alpha.red" discernibility type in BC.discernibility.mat.FRST .

It should be noted that this function does not give the new decision table directly. The other additional function called SF.applyDecTable is used to produce the new decision table based on information about the reduct from this function.

References

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.FRST

Examples

Run this code
#########################################################
## Example 1: Hiring dataset containing 8 objects with 5 attributes
#########################################################
if (FALSE) data(RoughSetData)
decision.table <- RoughSetData$hiring.dt

## get reduct as FeatureSubset class
reduct.1 <- FS.nearOpt.fvprs.FRST(decision.table)

## get new decision table according to the reduct
new.decTable <- SF.applyDecTable(decision.table, reduct.1)

#########################################################
## Example 2: Pima dataset containing 7 objects with 9 attributes
#########################################################
data(RoughSetData)
decision.table <- RoughSetData$pima7.dt

## get reduct
reduct.2 <- FS.nearOpt.fvprs.FRST(decision.table)

## get new decision table according to the reduct
new.decTable <- SF.applyDecTable(decision.table, reduct.2)

Run the code above in your browser using DataLab