# FS.permutation.heuristic.reduct.RST: The permutation heuristic algorithm for computation of a... In janusza/RoughSets: Data Analysis Using Rough Set and Fuzzy Rough Set Theories

## Description

It is a function implementing the permutation heuristic approach based on RST.

## Usage

 ```1 2``` ```FS.permutation.heuristic.reduct.RST(decision.table, permutation = NULL, decisionIdx = ncol(decision.table)) ```

## Arguments

 `decision.table` an object of a `"DecisionTable"` class representing a decision table. See `SF.asDecisionTable`. `permutation` a logical value, an integer vector or`NULL` (the default). If an integer vector with a length equal the cardinality of the conditional attribute set of the decision table is given (it must contain a permutation of integers from 1:(ncol(decision.table) - 1) ), then it will define the elimination order. Otherwise, if `permutation` is `NULL` or `TRUE` a random permutation will be generated. In the case when `permutation` is FALSE, the elimination will be performed in the order of attributes in the decision system. `decisionIdx` an index of the decision attribute. The default value is the last column of a decision table.

## Details

Basically there are two steps in this algorithm which are

• generating feature subset as a superreduct: In this step, we choose a subset of attributes that discern all object from different decision classes. It is done by adding consecutive attributes in an order defined by a permutation of attribute indices. The permutation can be random or it can be explicitly given (by the parameter `permutation`).

• iterative elimination of attributes from the set obtained in the previous step. It is done in the reverse order to that, defined by the permutation.

More details regarding this algorithm can be found in (Janusz and Slezak, 2012).

Additionally, `SF.applyDecTable` has been provided to generate new decision table.

## 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 `"permutation.heuristic"`.

• `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 `"RST"` which means rough set theory.

• `epsilon`: the approximation threshold.

Andrzej Janusz

## References

A. Janusz and D. Ślęzak, "Utilization of Attribute Clustering Methods for Scalable Computation of Reducts from High-Dimensional Data". Proceedings of Federated Conference on Computer Science and Information Systems - FedCSIS, p. 295 - 302 (2012).

Andrzej Janusz and Dominik Slezak. "Rough Set Methods for Attribute Clustering and Selection". Applied Artificial Intelligence, 28(3):220–242, 2014.

`FS.quickreduct.RST` and `FS.reduct.computation`.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19``` ```################################################### ## Example 1: Generate reduct and new decision table ################################################### data(RoughSetData) decision.table <- RoughSetData\$hiring.dt ## generate single reduct res.1 <- FS.permutation.heuristic.reduct.RST(decision.table, permutation = NULL, decisionIdx = 5) print(res.1) res.2 <- FS.permutation.heuristic.reduct.RST(decision.table, permutation = 4:1, decisionIdx = 5) print(res.2) ## generate new decision table according to the reduct new.decTable <- SF.applyDecTable(decision.table, res.1) ```