RoughSets (version 1.3-7)

RI.GFRS.FRST: Generalized fuzzy rough set rule induction based on FRST

Description

It is a function generating rules in classification tasks using the fuzzy variable precision rough sets (FVPRS) approach (see BC.LU.approximation.FRST).

Usage

RI.GFRS.FRST(decision.table, control = list())

Value

A class "RuleSetFRST" which has following components:

  • rules: It is a list containing two elements which are rules and threshold. The rules represent knowledge in data set that can be expressed as an IF-THEN form. For example, we got the rule as follows: 90 8 2 and its colnames: pres, preg, and class. It refers to the following rule: IF pres is about 90 and preg is about 8 THEN class is 2. In other words, while the last column represents the consequent part, the rest expresses the antecedent part. The second part of this object is threshold representing a value used to predict new data. In order to change IF-THEN form, we can use summary.

  • type.model: It is the type of the theory whether "FRST" or "RST". In this case, it is FRST.

  • type.method: It is the considered method. In this case, it is RI.GFRS.FRST.

  • type.task: It is the type of task. In this case, it is "classification".

  • t.similariy: It is the type of similarity equation. See BC.IND.relation.FRST.

  • t.tnorm: It is the type of triangular operator. See BC.IND.relation.FRST.

  • variance.data: It represents the variance of the data set. It has NA values when the associated attributes are nominal values.

  • range.data: It represents the range of the data set. It has NA values when the associated attributes are nominal values.

  • antecedent.attr: It is a list of attribute names involved in the antecedent part.

  • consequent.attr: It is the attribute in the consequent part.

  • nominal.att: It is a list of boolean that represent whether a attribute is nominal or not.

Arguments

decision.table

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

control

a list of other parameters which consist of

  • alpha.precision: a numeric value representing variable precision of FVPRS. The default value is 0.05. See BC.LU.approximation.FRST.

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

    See BC.IND.relation.FRST.

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

  • t.implicator: a type of implication function. The default value is "lukasiewicz". See BC.LU.approximation.FRST.

Author

Lala Septem Riza

Details

The method proposed by (Zhao, 2010) consists of three steps as follows. First, it builds a general lower approximation that is able to deal with misclassification and perturbation. In this case, the fuzzy variable precision rough sets (FVPRS) is used to calculate the lower approximation (see BC.LU.approximation.FRST). Secondly, a discernibility matrix considering a consistence degree is constructed for obtaining rules. The details about the matrix can be seen in BC.discernibility.mat.FRST. Then, we calculate attribute value reduction of every object and perform near-minimal rule set. The final step is to construct rules considering the consistence degree of associated objects.

It should be noted that this function only allows classification problems. After obtaining the rules, predicting can be done by calling predict or predict.RuleSetFRST. Additionally, to get better representation we can execute summary.

References

S. Y. Zhao, E. C. C. Tsang, D. G. Chen, and X. Z. Wang, "Building a Rule-based Classifier -- A Fuzzy-rough Set Approach", IEEE Trans. on Knowledge and Data Engineering, vol. 22, no. 5, p. 624 - 638 (2010).

See Also

RI.indiscernibilityBasedRules.RST, predict.RuleSetFRST, and RI.hybridFS.FRST.

Examples

Run this code
###########################################################
## Example
##############################################################
data(RoughSetData)
decision.table <- RoughSetData$pima7.dt

control <- list(alpha.precision = 0.01, type.aggregation = c("t.tnorm", "lukasiewicz"),
                type.relation = c("tolerance", "eq.3"), t.implicator = "lukasiewicz")
rules <- RI.GFRS.FRST(decision.table, control)

Run the code above in your browser using DataLab