com.rapidminer.operator.features.construction
Class YAGGA2

java.lang.Object
  extended by com.rapidminer.tools.AbstractObservable<Operator>
      extended by com.rapidminer.operator.Operator
          extended by com.rapidminer.operator.OperatorChain
              extended by com.rapidminer.operator.features.construction.ExampleSetBasedFeatureOperator
                  extended by com.rapidminer.operator.features.construction.AbstractGeneratingGeneticAlgorithm
                      extended by com.rapidminer.operator.features.construction.YAGGA
                          extended by com.rapidminer.operator.features.construction.YAGGA2
All Implemented Interfaces:
ConfigurationListener, PreviewListener, ResourceConsumer, ParameterHandler, LoggingHandler, Observable<Operator>
Direct Known Subclasses:
DirectedGGA, FourierGGA

public class YAGGA2
extends YAGGA

YAGGA is an acronym for Yet Another Generating Genetic Algorithm. Its approach to generating new attributes differs from the original one. The (generating) mutation can do one of the following things with different probabilities:

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 YAGGA operator, this operator allows more feature generators and provides several techniques for intron prevention. This leads to smaller example sets containing less redundant features.

Since this operator does not contain algorithms to extract features from value series, it is restricted to example sets with only single attributes. For (automatic) feature extraction from values series the value series plugin for RapidMiner should be used.

For more information please refer to

Mierswa, Ingo (2007): RobustGP: Intron-Free Multi-Objective Feature Construction (to appear)

Author:
Ingo Mierswa

Field Summary
static java.lang.String PARAMETER_ASSOCIATIVE_ATTRIBUTE_MERGING
          The parameter name for "Post processing after crossover (only possible for runs with only one generator).
static java.lang.String PARAMETER_CONSTANT_GENERATION_PROB
          The parameter name for "Generate random constant attributes with this probability.
static java.lang.String PARAMETER_EQUIVALENCE_EPSILON
          The parameter name for "Consider two attributes equivalent if their difference is not bigger than epsilon.
static java.lang.String PARAMETER_EQUIVALENCE_SAMPLES
          The parameter name for "Check this number of samples to prove equivalency.
static java.lang.String PARAMETER_EQUIVALENCE_USE_STATISTICS
          The parameter name for "Recalculates attribute statistics before equivalence check.
static java.lang.String PARAMETER_REMOVE_EQUIVALENT
          The parameter name for "Remove equivalent attributes.
static java.lang.String PARAMETER_REMOVE_USELESS
          The parameter name for "Remove useless attributes.
static java.lang.String PARAMETER_RESTRICTIVE_SELECTION
          The parameter name for "Use restrictive generator selection (faster).
static java.lang.String PARAMETER_UNUSED_FUNCTIONS
          The parameter name for "Space separated list of functions which are not allowed in arguments for attribute construction.
static java.lang.String PARAMETER_USE_ABSOLUTE_VALUES
          The parameter name for "Generate absolute values.
static java.lang.String PARAMETER_USE_ATAN
          The parameter name for "Generate arc tangens.
static java.lang.String PARAMETER_USE_COS
          The parameter name for "Generate cosinus.
static java.lang.String PARAMETER_USE_EXP
          The parameter name for "Generate exponential functions.
static java.lang.String PARAMETER_USE_FLOOR_CEIL_FUNCTIONS
          The parameter name for "Generate floor, ceil, and rounded values.
static java.lang.String PARAMETER_USE_LOG
          The parameter name for "Generate logarithmic functions.
static java.lang.String PARAMETER_USE_MAX
          The parameter name for "Generate maximum values.
static java.lang.String PARAMETER_USE_MIN
          The parameter name for "Generate minimum values.
static java.lang.String PARAMETER_USE_POWER_FUNCTIONS
          The parameter name for "Generate the power of one attribute and another.
static java.lang.String PARAMETER_USE_SGN
          The parameter name for "Generate signum values.
static java.lang.String PARAMETER_USE_SIN
          The parameter name for "Generate sinus.
static java.lang.String PARAMETER_USE_SQUARE_ROOTS
          The parameter name for "Generate square root values.
static java.lang.String PARAMETER_USE_TAN
          The parameter name for "Generate tangens.
 
Fields inherited from class com.rapidminer.operator.features.construction.YAGGA
PARAMETER_LIMIT_MAX_TOTAL_NUMBER_OF_ATTRIBUTES, PARAMETER_MAX_TOTAL_NUMBER_OF_ATTRIBUTES, PARAMETER_P_MUTATION, PARAMETER_USE_HEURISTIC_MUTATION_PROBABILITY
 
Fields inherited from class com.rapidminer.operator.features.construction.AbstractGeneratingGeneticAlgorithm
BOLTZMANN_SELECTION, CUT_SELECTION, NON_DOMINATED_SORTING_SELECTION, PARAMETER_CROSSOVER_TYPE, PARAMETER_DYNAMIC_SELECTION_PRESSURE, PARAMETER_GENERATIONS_WITHOUT_IMPROVAL, PARAMETER_KEEP_BEST_INDIVIDUAL, PARAMETER_MAXIMUM_NUMBER_OF_GENERATIONS, PARAMETER_P_CROSSOVER, PARAMETER_P_INITIALIZE, PARAMETER_POPULATION_SIZE, PARAMETER_RECIPROCAL_VALUE, PARAMETER_START_TEMPERATURE, PARAMETER_TOURNAMENT_SIZE, PARAMETER_USE_DIFF, PARAMETER_USE_DIV, PARAMETER_USE_EARLY_STOPPING, PARAMETER_USE_MULT, PARAMETER_USE_PLUS, RANK_SELECTION, ROULETTE_WHEEL, SELECTION_SCHEMES, STOCHASTIC_UNIVERSAL, TOURNAMENT_SELECTION, UNIFORM_SELECTION
 
Fields inherited from class com.rapidminer.operator.features.construction.ExampleSetBasedFeatureOperator
PARAMETER_MAXIMAL_FITNESS, PARAMETER_SHOW_STOP_DIALOG
 
Constructor Summary
YAGGA2(OperatorDescription description)
           
 
Method Summary
 void doWork()
          Applies the feature operator: collects the pre- and postevaluation operators create an initial population evaluate the initial population loop as long as solution is not good enough apply all pre evaluation operators evaluate the population update the population's best individual apply all post evaluation operators return all generation's best individual
 java.util.List<FeatureGenerator> getGenerators()
          Returns a list with all generator which should be used.
protected  ExampleSetBasedPopulationOperator getMutationPopulationOperator(ExampleSet exampleSet)
          Returns the generating mutation PopulationOperator.
 java.util.List<ParameterType> getParameterTypes()
          Returns a list of ParameterTypes describing the parameters of this operator.
protected  java.util.List<ExampleSetBasedPopulationOperator> getPreProcessingPopulationOperators(ExampleSet eSet)
           
 
Methods inherited from class com.rapidminer.operator.features.construction.YAGGA
createInitialPopulation, getGeneratingPopulationOperator
 
Methods inherited from class com.rapidminer.operator.features.construction.AbstractGeneratingGeneticAlgorithm
getCrossoverPopulationOperator, getPostEvaluationPopulationOperators, getPostProcessingPopulationOperators, getPreEvaluationPopulationOperators, solutionGoodEnough
 
Methods inherited from class com.rapidminer.operator.features.construction.ExampleSetBasedFeatureOperator
evaluate, evaluate, getCheckForMaximum, getPopulation, getRandom, setCheckForMaximum
 
Methods inherited from class com.rapidminer.operator.OperatorChain
addOperator, addOperator, addSubprocess, areSubprocessesExtendable, assumePreconditionsSatisfied, checkDeprecations, checkIO, checkNumberOfInnerOperators, checkProperties, clear, cloneOperator, collectErrors, createProcessTree, createSubprocess, freeMemory, getAllInnerOperators, getAllInnerOperatorsAndMe, getImmediateChildren, getIndexOfOperator, getInnerOperatorCondition, getMaxNumberOfInnerOperators, getMinNumberOfInnerOperators, getNumberOfAllOperators, getNumberOfOperators, getNumberOfSubprocesses, getOperator, getOperatorFromAll, getOperators, getSubprocess, getSubprocesses, isEnabled, lookupOperator, notifyRenaming, performAdditionalChecks, processFinished, processStarts, propagateDirtyness, registerOperator, removeOperator, removeSubprocess, shouldAddNonConsumedInput, shouldReturnInnerOutput, unregisterOperator, updateExecutionOrder, walk
 
Methods inherited from class com.rapidminer.operator.Operator
acceptsInput, addError, addError, addValue, addWarning, apply, apply, checkAll, checkAllExcludingMetaData, checkForStop, clearErrorList, createExperimentTree, createExperimentTree, createFromXML, createFromXML, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, disconnectPorts, execute, fireUpdate, getAddOnlyAdditionalOutput, getApplyCount, getCompatibilityLevel, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getDOMRepresentation, getEncoding, getErrorList, getExecutionUnit, getExperiment, getIncompatibleVersionChanges, getInput, getInput, getInput, getInputClasses, getInputDescription, getInputPorts, getIODescription, getLog, getLogger, getName, getNumberOfBreakpoints, getOperatorClassName, getOperatorDescription, getOutputClasses, getOutputPorts, getParameter, getParameterAsBoolean, getParameterAsChar, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsFile, getParameterAsInputStream, getParameterAsInt, getParameterAsMatrix, getParameterAsRepositoryLocation, getParameterAsString, getParameterHandler, getParameterList, getParameters, getParameterTupel, getParameterType, getParent, getPortOwner, getProcess, getResourceConsumptionEstimator, getRoot, getStartTime, getTransformer, getUserDescription, getValue, getValues, getXML, getXML, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isDebugMode, isDirty, isExpanded, isParallel, isParameterSet, isRunning, log, log, logError, logNote, logWarning, makeDirty, makeDirtyOnUpdate, preAutoWire, producesOutput, register, remove, removeAndKeepConnections, rename, resume, setBreakpoint, setCompatibilityLevel, setEnabled, setEnclosingProcess, setExpanded, setInput, setListParameter, setPairParameter, setParameter, setParameters, setUserDescription, shouldAutoConnect, shouldAutoConnect, shouldStopStandaloneExecution, toString, transformMetaData, writeXML, writeXML
 
Methods inherited from class com.rapidminer.tools.AbstractObservable
addObserver, addObserverAsFirst, fireUpdate, removeObserver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PARAMETER_USE_SQUARE_ROOTS

public static final java.lang.String PARAMETER_USE_SQUARE_ROOTS
The parameter name for "Generate square root values."

See Also:
Constant Field Values

PARAMETER_USE_POWER_FUNCTIONS

public static final java.lang.String PARAMETER_USE_POWER_FUNCTIONS
The parameter name for "Generate the power of one attribute and another."

See Also:
Constant Field Values

PARAMETER_USE_SIN

public static final java.lang.String PARAMETER_USE_SIN
The parameter name for "Generate sinus."

See Also:
Constant Field Values

PARAMETER_USE_COS

public static final java.lang.String PARAMETER_USE_COS
The parameter name for "Generate cosinus."

See Also:
Constant Field Values

PARAMETER_USE_TAN

public static final java.lang.String PARAMETER_USE_TAN
The parameter name for "Generate tangens."

See Also:
Constant Field Values

PARAMETER_USE_ATAN

public static final java.lang.String PARAMETER_USE_ATAN
The parameter name for "Generate arc tangens."

See Also:
Constant Field Values

PARAMETER_USE_EXP

public static final java.lang.String PARAMETER_USE_EXP
The parameter name for "Generate exponential functions."

See Also:
Constant Field Values

PARAMETER_USE_LOG

public static final java.lang.String PARAMETER_USE_LOG
The parameter name for "Generate logarithmic functions."

See Also:
Constant Field Values

PARAMETER_USE_ABSOLUTE_VALUES

public static final java.lang.String PARAMETER_USE_ABSOLUTE_VALUES
The parameter name for "Generate absolute values."

See Also:
Constant Field Values

PARAMETER_USE_MIN

public static final java.lang.String PARAMETER_USE_MIN
The parameter name for "Generate minimum values."

See Also:
Constant Field Values

PARAMETER_USE_MAX

public static final java.lang.String PARAMETER_USE_MAX
The parameter name for "Generate maximum values."

See Also:
Constant Field Values

PARAMETER_USE_SGN

public static final java.lang.String PARAMETER_USE_SGN
The parameter name for "Generate signum values."

See Also:
Constant Field Values

PARAMETER_USE_FLOOR_CEIL_FUNCTIONS

public static final java.lang.String PARAMETER_USE_FLOOR_CEIL_FUNCTIONS
The parameter name for "Generate floor, ceil, and rounded values."

See Also:
Constant Field Values

PARAMETER_RESTRICTIVE_SELECTION

public static final java.lang.String PARAMETER_RESTRICTIVE_SELECTION
The parameter name for "Use restrictive generator selection (faster)."

See Also:
Constant Field Values

PARAMETER_REMOVE_USELESS

public static final java.lang.String PARAMETER_REMOVE_USELESS
The parameter name for "Remove useless attributes."

See Also:
Constant Field Values

PARAMETER_REMOVE_EQUIVALENT

public static final java.lang.String PARAMETER_REMOVE_EQUIVALENT
The parameter name for "Remove equivalent attributes."

See Also:
Constant Field Values

PARAMETER_EQUIVALENCE_SAMPLES

public static final java.lang.String PARAMETER_EQUIVALENCE_SAMPLES
The parameter name for "Check this number of samples to prove equivalency."

See Also:
Constant Field Values

PARAMETER_EQUIVALENCE_EPSILON

public static final java.lang.String PARAMETER_EQUIVALENCE_EPSILON
The parameter name for "Consider two attributes equivalent if their difference is not bigger than epsilon."

See Also:
Constant Field Values

PARAMETER_EQUIVALENCE_USE_STATISTICS

public static final java.lang.String PARAMETER_EQUIVALENCE_USE_STATISTICS
The parameter name for "Recalculates attribute statistics before equivalence check."

See Also:
Constant Field Values

PARAMETER_UNUSED_FUNCTIONS

public static final java.lang.String PARAMETER_UNUSED_FUNCTIONS
The parameter name for "Space separated list of functions which are not allowed in arguments for attribute construction."

See Also:
Constant Field Values

PARAMETER_CONSTANT_GENERATION_PROB

public static final java.lang.String PARAMETER_CONSTANT_GENERATION_PROB
The parameter name for "Generate random constant attributes with this probability."

See Also:
Constant Field Values

PARAMETER_ASSOCIATIVE_ATTRIBUTE_MERGING

public static final java.lang.String PARAMETER_ASSOCIATIVE_ATTRIBUTE_MERGING
The parameter name for "Post processing after crossover (only possible for runs with only one generator)."

See Also:
Constant Field Values
Constructor Detail

YAGGA2

public YAGGA2(OperatorDescription description)
Method Detail

doWork

public void doWork()
            throws OperatorException
Description copied from class: ExampleSetBasedFeatureOperator
Applies the feature operator:
  1. collects the pre- and postevaluation operators
  2. create an initial population
  3. evaluate the initial population
  4. loop as long as solution is not good enough
    1. apply all pre evaluation operators
    2. evaluate the population
    3. update the population's best individual
    4. apply all post evaluation operators
  5. return all generation's best individual

Overrides:
doWork in class ExampleSetBasedFeatureOperator
Throws:
OperatorException

getMutationPopulationOperator

protected ExampleSetBasedPopulationOperator getMutationPopulationOperator(ExampleSet exampleSet)
                                                                   throws OperatorException
Description copied from class: YAGGA
Returns the generating mutation PopulationOperator.

Overrides:
getMutationPopulationOperator in class YAGGA
Throws:
OperatorException

getGenerators

public java.util.List<FeatureGenerator> getGenerators()
Description copied from class: AbstractGeneratingGeneticAlgorithm
Returns a list with all generator which should be used.

Overrides:
getGenerators in class AbstractGeneratingGeneticAlgorithm

getPreProcessingPopulationOperators

protected java.util.List<ExampleSetBasedPopulationOperator> getPreProcessingPopulationOperators(ExampleSet eSet)
                                                                                         throws OperatorException
Overrides:
getPreProcessingPopulationOperators in class AbstractGeneratingGeneticAlgorithm
Throws:
OperatorException

getParameterTypes

public java.util.List<ParameterType> getParameterTypes()
Description copied from class: Operator
Returns a list of ParameterTypes describing the parameters of this operator. The default implementation returns an empty list if no input objects can be retained and special parameters for those input objects which can be prevented from being consumed. ATTENTION! This will create new parameterTypes. For calling already existing parameter types use getParameters().getParameterTypes();

Specified by:
getParameterTypes in interface ParameterHandler
Overrides:
getParameterTypes in class YAGGA


Copyright © 2001-2009 by Rapid-I