Categories

Versions

(AI Studio Core)

Synopsis

This operator may select some attributes from the original attribute set and it may also generate new attributes from the original attribute set. YAGGA2 (Yet Another Generating Genetic Algorithm 2) does not change the original number of attributes unless adding or removing (or both) attributes proves to have a better fitness. This algorithm is an improved version of YAGGA.

Description

Sometimes the selection of features alone is not sufficient. In these cases other transformations of the feature space must be performed. The generation of new attributes from the given attributes extends the feature space. Maybe a hypothesis can be easily found in the extended feature space. This operator can be considered to be a blend of attribute selection and attribute generation procedures. It may select some attributes from the original set of attributes and it may also generate new attributes from the original attributes. The (generating) mutation can do one of the following things with different probabilities:

  • Probability p/4: Add a newly generated attribute to the feature vector.
  • Probability p/4: Add a randomly chosen original attribute to the feature vector.
  • Probability p/2: Remove a randomly chosen attribute from the feature vector.
Thus it is guaranteed that the length of the feature vector can both grow and shrink. On average it will keep its original length, unless longer or shorter individuals prove to have a better fitness.

In addition to the usual Optimize by Generation (YAGGA) operator, this operator allows more feature generators and provides several techniques for redundancy prevention. This leads to smaller ExampleSets containing less redundant features.

A genetic algorithm (GA) is a search heuristic that mimics the process of natural evolution. This heuristic is routinely used to generate useful solutions to optimization and search problems. Genetic algorithms belong to the larger class of evolutionary algorithms (EA), which generate solutions to optimization problems using techniques inspired by natural evolution, such as inheritance, mutation, selection, and crossover. For studying the basic algorithm of a genetic algorithm please study the description of the Optimize Selection (Evolutionary) operator.

This operator is a nested operator i.e. it has a subprocess. The subprocess must return a performance vector. You need to have basic understanding of subprocesses in order to apply this operator. Please study the documentation of the Subprocess operator for basic understanding of subprocesses.

Differentiation

Optimize by Generation (YAGGA)

The Optimize by Generation (YAGGA2) operator is an improved version of the usual Optimize by Generation (YAGGA) operator, this operator allows more feature generators and provides several techniques for redundancy prevention. This leads to smaller ExampleSets containing less redundant features.

Input

  • example set in (Data table)

    This input port expects an ExampleSet. This ExampleSet is available at the first port of the nested chain (inside the subprocess) for processing in the subprocess.

Output

  • example set out (Data table)

    The genetic algorithm is applied on the input ExampleSet. The resultant ExampleSet is delivered through this port.

  • attribute weights out (Attribute Weights)

    The attribute weights are delivered through this port.

  • performance out (Performance Vector)

    This port delivers the Performance Vector for the selected attributes. A Performance Vector is a list of performance criteria values.

Parameters

  • limit max total number of attributesThis parameter indicates if the total number of attributes in all generations should be limited. If set to true, the maximum number is specified by the max total number of attributes parameter.
  • max total number of attributesThis parameter is only available when the limit max total number of attributes parameter is set to true. This parameter specifies the maximum total number of attributes in all generations.
  • use local random seedThis parameter indicates if a local random seed should be used for randomization. Using the same value of local random seed will produce the same randomization.
  • local random seedThis parameter specifies the local random seed. This parameter is only available if the use local random seed parameter is set to true.
  • maximal fitnessThis parameter specifies the maximal fitness. The optimization will stop if the fitness reaches this value.
  • population sizeThis parameter specifies the population size i.e. the number of individuals per generation.
  • maximum number of generationsThis parameter specifies the number of generations after which the algorithm should be terminated.
  • use plusThis parameter indicates if the summation function should be applied for a generation of new attributes.
  • use diffThis parameter indicates if the difference function should be applied for a generation of new attributes.
  • use multThis parameter indicates if the multiplication function should be applied for a generation of new attributes.
  • use divThis parameter indicates if the division function should be applied for a generation of new attributes.
  • reciprocal valueThis parameter indicates if the reciprocal function should be applied for a generation of new attributes.
  • use early stoppingThis parameter enables early stopping. If not set to true, always the maximum number of generations are performed.
  • generations without improvalThis parameter is only available when the use early stopping parameter is set to true. This parameter specifies the stop criterion for early stopping i.e. it stops after n generations without improvement in the performance. n is specified by this parameter.
  • tournament sizeThis parameter specifies the fraction of the current population which should be used as tournament members.
  • start temperatureThis parameter specifies the scaling temperature.
  • dynamic selection pressureIf this parameter is set to true, the selection pressure is increased to maximum during the complete optimization run.
  • keep best individual If set to true, the best individual of each generation is guaranteed to be selected for the next generation.
  • p initializeThe initial probability for an attribute to be switched on is specified by this parameter.
  • p crossoverThe probability for an individual to be selected for crossover is specified by this parameter.
  • crossover typeThe type of the crossover can be selected by this parameter.
  • use heuristic mutation probabilityIf this parameter is set to true, the probability for mutations will be chosen as 1/n where n is the number of attributes. Otherwise the probability for mutations should be specified through the p mutation parameter
  • p mutationThe probability for an attribute to be changed is specified by this parameter. If set to -1, the probability will be set to 1/n where n is the total number of attributes.
  • use square rootsThis parameter indicates if the square root function should be applied for a generation of new attributes.
  • use power functionsThis parameter indicates if the power (of one attribute to another attribute) function should be applied for a generation of new attributes.
  • use sinThis parameter indicates if the sine function should be applied for a generation of new attributes.
  • use cosThis parameter indicates if the cosine function should be applied for a generation of new attributes.
  • use tanThis parameter indicates if the tangent function should be applied for a generation of new attributes.
  • use atanThis parameter indicates if the arc tangent function should be applied for a generation of new attributes.
  • use expThis parameter indicates if the exponential function should be applied for a generation of new attributes.
  • use logThis parameter indicates if the logarithmic function should be applied for a generation of new attributes.
  • use absolute valuesThis parameter indicates if the absolute function should be applied for a generation of new attributes.
  • use minThis parameter indicates if the minimum function should be applied for a generation of new attributes.
  • use maxThis parameter indicates if the maximum function should be applied for a generation of new attributes.
  • use sgnThis parameter indicates if the signum function should be applied for a generation of new attributes.
  • use floor ceil functionsThis parameter indicates if the floor and ceiling functions should be applied for a generation of new attributes.
  • restrictive selectionThis parameter indicates if the restrictive generator selection should be used. Execution is usually faster if this parameter is set to true.
  • remove uselessThis parameter indicates if useless attributes should be removed.
  • remove equivalentThis parameter indicates if equivalent attributes should be removed.
  • equivalence samples n number of samples are checked to prove equivalency where n is the value of this parameter.
  • equivalence epsilonTwo attributes are considered equivalent if their difference is not bigger than epsilon.
  • equivalence use statisticsIf this parameter is set to true, attribute statistics are recalculated before equivalence check.
  • unused functionsThis parameter specifies the space separated list of functions which are not allowed in arguments for the attribute construction.
  • constant generation probThis parameter specifies the probability for a generation of random constant attributes.
  • associative attribute mergingThis parameter specifies if post processing should be performed after the crossover. It is only possible for runs with only one generator.

Tutorial Processes

Applying YAGGA2 on the Polynomial data set

The 'Polynomial' data set is loaded using the Retrieve operator. A breakpoint is inserted here so that you can have a look at the ExampleSet. You can see that the ExampleSet has 5 regular attributes other then the label attribute. The Optimize by Generation (YAGGA2) operator is applied on the ExampleSet. It is a nested operator i.e. it has a subprocess. It is necessary for the subprocess to deliver a performance vector which is used by the underlying Genetic Algorithm. Have a look at the subprocess of this operator. The Split Validation operator is used there which itself is a nested operator. Have a look at the subprocesses of the Split Validation operator. The Linear Regression operator is used in the 'Training' subprocess to train a model. The trained model is applied using the Apply Model operator in the 'Testing' subprocess. The performance is measured through the Performance (Regression) operator and the resultant performance vector is used by the underlying algorithm. Run the process and switch to the Results Workspace. You can see that the ExampleSet that had 5 attributes now has 7 attributes. All attributes were selected from the original attribute set and the attributes 'gensym5' and 'gensym6' were generated. The number of resultant attributes is not less than the number of original attributes because YAGGA2 is not an attribute reduction operator. It may (or may not) increase or decrease the number of attributes depending on what proves to have a better fitness.