Learn R Programming

SDR (version 0.7.0.0)

SDIGA: Subgroup Discovery Iterative Genetic Algorithm (SDIGA)

Description

Perfoms a subgroup discovery task executing the algorithm SDIGA

Usage

SDIGA(parameters_file = NULL, training = NULL, test = NULL, output = c("optionsFile.txt", "rulesFile.txt", "testQM.txt"), seed = 0, nLabels = 3, nEval = 10000, popLength = 100, mutProb = 0.01, RulesRep = "can", Obj1 = "CSUP", w1 = 0.7, Obj2 = "CCNF", w2 = 0.3, Obj3 = "null", w3 = 0, minConf = 0.6, lSearch = "yes", targetVariable = NA, targetClass = "null")

Arguments

parameters_file
The path of the parameters file. NULL If you want to use training and test keel variables
training
A keel class variable with training data.
test
A keel class variable with training data.
output
character vector with the paths of where store information file, rules file and test quality measures file, respectively.
seed
An integer to set the seed used for generate random numbers.
nLabels
Number of fuzzy labels defined in the datasets.
nEval
An integer for set the maximum number of evaluations in the evolutive process.
popLength
An integer to set the number of individuals in the population.
mutProb
Sets the mutation probability. A number in [0,1].
RulesRep
Representation used in the rules. "can" for canonical rules, "dnf" for DNF rules.
Obj1
Sets the Objective number 1. See Objective values for more information about the possible values.
w1
Sets the weight of Obj1.
Obj2
Sets the Objective number 2. See Objective values for more information about the possible values.
w2
Sets the weight of Obj2.
Obj3
Sets the Objective number 3. See Objective values for more information about the possible values.
w3
Sets the weight of Obj3.
minConf
Sets the minimum confidence that must have the rule returned by the genetic algorithm after the local optimitation phase. A number in [0,1].
lSearch
Sets if the local optimitation phase must be performed. A string with "yes" or "no".
targetVariable
A string with the name or an integer with the index position of the target variable (or class). It must be a categorical one.
targetClass
A string specifing the value the target variable. null for search for all possible values.

Value

The algorithm shows in the console the following results:
  1. The parameters used in the algorithm
  2. The rules generated.
  3. The quality measures for test of every rule and the global results.
Also, the algorithms save those results in the files specified in the output parameter of the algorithm or in the outputData parameter in the parameters file.

How does this algorithm work?

This algorithm has a genetic algorithm in his core. This genetic algorithm returns only the best rule of the population and it is executed so many times until a stop condition is reached. The stop condition is that the rule returned must cover at least one new example (not covered by previous rules) and must have a confidence greater than a minimum. After returning the rule, a local improvement could be applied for make the rule more general. This local improve is done by means of a hill-climbing local search. The genetic algorithm cross only the two best individuals. But the mutation operator is applied over all the population, individuals from cross too.

Parameters file structure

The parameters_file argument points to a file which has the necesary parameters for SDIGA works. This file must be, at least, those parameters (separated by a carriage return):
  • algorithm Specify the algorithm to execute. In this case. "SDIGA"
  • inputData Specify two paths of KEEL files for training and test. In case of specify only the name of the file, the path will be the working directory.
  • seed Sets the seed for the random number generator
  • nLabels Sets the number of fuzzy labels to create when reading the files
  • nEval Set the maximun number of evaluations of rules for stop the genetic process
  • popLength Sets number of individuals of the main population
  • mutProb Mutation probability of the genetic algorithm. Value in [0,1]
  • RulesRep Representation of each chromosome of the population. "can" for canonical representation. "dnf" for DNF representation.
  • Obj1 Sets the objective number 1.
  • w1 Sets the weigth assigned to the objective number 1. Value in [0,1]
  • Obj2 Sets the objective number 2.
  • w2 Sets the weigth assigned to the objective number 2. Value in [0,1]
  • Obj3 Sets the objective number 3.
  • w3 Sets the weigth assigned to the objective number 3. Value in [0,1]
  • minConf Sets the minimum confidence of the rule for checking the stopping criteria of the iterative process
  • lSearch Perform the local search algorithm after the execution of the genetic algorithm? Values: "yes" or "no"
  • targetClass Value of the target variable to search for subgroups. The target variable is always the last variable.. Use null to search for every value of the target variable
An example of parameter file could be:
algorithm = SDIGA
inputData = "irisD-10-1tra.dat" "irisD-10-1tst.dat"
outputData = "irisD-10-1-INFO.txt" "irisD-10-1-Rules.txt" "irisD-10-1-TestMeasures.txt"
seed = 0
nLabels = 3
nEval = 500
popLength = 100
mutProb = 0.01
minConf = 0.6
RulesRep = can
Obj1 = Comp
Obj2 = Unus
Obj3 = null
w1 = 0.7
w2 = 0.3
w3 = 0.0
lSearch = yes

Objective values

You can use the following quality measures in the ObjX value of the parameter file using this values:
  • Unusualness -> unus
  • Crisp Support -> csup
  • Crisp Confidence -> ccnf
  • Fuzzy Support -> fsup
  • Fuzzy Confidence -> fcnf
  • Coverage -> cove
  • Significance -> sign
If you dont want to use a objetive value you must specify null

Details

This function sets as target variable the last one that appear in the KEEL file. If you want to change the target variable, you can use changeTargetVariable for this objective. The target variable MUST be categorical, if it is not, throws an error.

If you specify in paramFile something distintc to NULL the rest of the parameters are ignored and the algorithm tries to read the file specified. See "Parameters file structure" below if you want to use a parameters file.

References

M. J. del Jesus, P. Gonzalez, F. Herrera, and M. Mesonero, "Evolutionary Fuzzy Rule Induction Process for Subgroup Discovery: A case study in marketing," IEEE Transactions on Fuzzy Systems, vol. 15, no. 4, pp. 578-592, 2007.

Examples

Run this code
SDIGA(parameters_file = NULL,
      training = habermanTra,
      test = habermanTst,
      output = c("optionsFile.txt", "rulesFile.txt", "testQM.txt"),
      seed = 0,
      nLabels = 3,
      nEval = 300,
      popLength = 100,
      mutProb = 0.01,
      RulesRep = "can",
      Obj1 = "CSUP",
      w1 = 0.7,
      Obj2 = "CCNF",
      w2 = 0.3,
      Obj3 = "null",
      w3 = 0,
      minConf = 0.6,
      lSearch = "yes",
      targetClass = "positive")
## Not run: 
# SDIGA(parameters_file = NULL,
#       training = habermanTra,
#       test = habermanTst,
#       output = c("optionsFile.txt", "rulesFile.txt", "testQM.txt"),
#       seed = 0,
#       nLabels = 3,
#       nEval = 300,
#       popLength = 100,
#       mutProb = 0.01,
#       RulesRep = "can",
#       Obj1 = "CSUP",
#       w1 = 0.7,
#       Obj2 = "CCNF",
#       w2 = 0.3,
#       Obj3 = "null",
#       w3 = 0,
#       minConf = 0.6,
#       lSearch = "yes",
#       targetClass = "positive")
#       ## End(Not run)

Run the code above in your browser using DataLab