com.rapidminer.operator.learner.functions.kernel.evosvm
Class EvoSVM

java.lang.Object
  extended by com.rapidminer.operator.Operator
      extended by com.rapidminer.operator.learner.AbstractLearner
          extended by com.rapidminer.operator.learner.functions.kernel.evosvm.EvoSVM
All Implemented Interfaces:
ConfigurationListener, PreviewListener, Learner, ParameterHandler, LoggingHandler

public class EvoSVM
extends AbstractLearner

This is a SVM implementation using an evolutionary algorithm (ES) to solve the dual optimization problem of a SVM. It turns out that on many datasets this simple implementation is as fast and accurate as the usual SVM implementations. In addition, it is also capable of learning with Kernels which are not positive semi-definite and can also be used for multi-objective learning which makes the selection of C unecessary before learning.

Mierswa, Ingo. Evolutionary Learning with Kernels: A Generic Solution for Large Margin Problems. In Proc. of the Genetic and Evolutionary Computation Conference (GECCO 2006), 2006.

Author:
Ingo Mierswa
Keywords:
SVM

Field Summary
static java.lang.String PARAMETER_C
          The parameter name for "The SVM complexity constant (0: calculates probably good value).
static java.lang.String PARAMETER_CROSSOVER_PROB
          The parameter name for "The probability for crossovers.
static java.lang.String PARAMETER_EPSILON
          The parameter name for "The width of the regression tube loss function of the regression SVM"
static java.lang.String PARAMETER_GENERATIONS_WITHOUT_IMPROVAL
          The parameter name for "Stop after this number of generations without improvement (-1: optimize until max_iterations).
static java.lang.String PARAMETER_HOLD_OUT_SET_RATIO
          The parameter name for "Uses this amount as a hold out set to estimate generalization error after learning (currently only used for multi-objective classification).
static java.lang.String PARAMETER_KEEP_BEST
          The parameter name for "Indicates if the best individual should survive (elititst selection).
static java.lang.String PARAMETER_MAX_GENERATIONS
          The parameter name for "Stop after this many evaluations"
static java.lang.String PARAMETER_MUTATION_TYPE
          The parameter name for "The type of the mutation operator.
static java.lang.String PARAMETER_POPULATION_SIZE
          The parameter name for "The population size (-1: number of examples)"
static java.lang.String PARAMETER_RETURN_OPTIMIZATION_PERFORMANCE
          The parameter name for "Indicates if final optimization fitness should be returned as performance.
static java.lang.String PARAMETER_SELECTION_TYPE
          The parameter name for "The type of the selection operator.
static java.lang.String PARAMETER_SHOW_CONVERGENCE_PLOT
          The parameter name for "Indicates if a dialog with a convergence plot should be drawn.
static java.lang.String PARAMETER_SHOW_POPULATION_PLOT
           
static java.lang.String PARAMETER_START_POPULATION_TYPE
          The parameter name for "The type of start population initialization.
static java.lang.String PARAMETER_TOURNAMENT_FRACTION
          The parameter name for "The fraction of the population used for tournament selection.
 
Fields inherited from class com.rapidminer.operator.learner.AbstractLearner
PROPERTY_RAPIDMINER_GENERAL_CAPABILITIES_WARN
 
Constructor Summary
EvoSVM(OperatorDescription description)
          Creates a new SVM which uses an Evolutionary Strategy approach for optimization.
 
Method Summary
static double[] createBoundArray(double bound, int size)
           
static double[] determineMax(double _c, Kernel kernel, ExampleSet exampleSet, int selectionType, int arraySize)
           
 PerformanceVector getOptimizationPerformance()
          Returns the optimization performance of the best result.
 java.util.List<ParameterType> getParameterTypes()
          Returns a list of ParameterTypes describing the parameters of this operator.
 Model learn(ExampleSet exampleSet)
          Learns and returns a model.
 boolean shouldDeliverOptimizationPerformance()
          Returns the value of the corresponding parameter.
 boolean supportsCapability(LearnerCapability lc)
          Returns true for numerical attributes, binominal classes, and numerical target attributes.
 
Methods inherited from class com.rapidminer.operator.learner.AbstractLearner
apply, getEstimatedPerformance, getInputClasses, getInputDescription, getOutputClasses, getWeights, onlyWarnForNonSufficientCapabilities, shouldCalculateWeights, shouldEstimatePerformance
 
Methods inherited from class com.rapidminer.operator.Operator
addError, addValue, addWarning, apply, checkDeprecations, checkForStop, checkIO, checkProperties, clearErrorList, cloneOperator, createExperimentTree, createExperimentTree, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, createProcessTree, getAddOnlyAdditionalOutput, getApplyCount, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getEncoding, getErrorList, getExperiment, getInnerOperatorsXML, getInput, getInput, getInput, getIOContainerForInApplyLoopBreakpoint, getIODescription, getLog, getName, getOperatorClassName, getOperatorDescription, getParameter, getParameterAsBoolean, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsFile, getParameterAsInputStream, getParameterAsInt, getParameterAsMatrix, getParameterAsString, getParameterList, getParameters, getParameterType, getParent, getProcess, getStartTime, getStatus, getUserDescription, getValue, getValues, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isDebugMode, isEnabled, isExpanded, isParallel, isParameterSet, log, logError, logNote, logWarning, performAdditionalChecks, processFinished, processStarts, register, registerOperator, remove, rename, resume, setApplyCount, setBreakpoint, setEnabled, setExpanded, setInput, setListParameter, setOperatorParameters, setParameter, setParameters, setParent, setUserDescription, toString, unregisterOperator, writeXML
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.rapidminer.operator.learner.Learner
getName
 

Field Detail

PARAMETER_C

public static final java.lang.String PARAMETER_C
The parameter name for "The SVM complexity constant (0: calculates probably good value)."

See Also:
Constant Field Values

PARAMETER_EPSILON

public static final java.lang.String PARAMETER_EPSILON
The parameter name for "The width of the regression tube loss function of the regression SVM"

See Also:
Constant Field Values

PARAMETER_START_POPULATION_TYPE

public static final java.lang.String PARAMETER_START_POPULATION_TYPE
The parameter name for "The type of start population initialization."

See Also:
Constant Field Values

PARAMETER_MAX_GENERATIONS

public static final java.lang.String PARAMETER_MAX_GENERATIONS
The parameter name for "Stop after this many evaluations"

See Also:
Constant Field Values

PARAMETER_GENERATIONS_WITHOUT_IMPROVAL

public static final java.lang.String PARAMETER_GENERATIONS_WITHOUT_IMPROVAL
The parameter name for "Stop after this number of generations without improvement (-1: optimize until max_iterations)."

See Also:
Constant Field Values

PARAMETER_POPULATION_SIZE

public static final java.lang.String PARAMETER_POPULATION_SIZE
The parameter name for "The population size (-1: number of examples)"

See Also:
Constant Field Values

PARAMETER_TOURNAMENT_FRACTION

public static final java.lang.String PARAMETER_TOURNAMENT_FRACTION
The parameter name for "The fraction of the population used for tournament selection."

See Also:
Constant Field Values

PARAMETER_KEEP_BEST

public static final java.lang.String PARAMETER_KEEP_BEST
The parameter name for "Indicates if the best individual should survive (elititst selection)."

See Also:
Constant Field Values

PARAMETER_MUTATION_TYPE

public static final java.lang.String PARAMETER_MUTATION_TYPE
The parameter name for "The type of the mutation operator."

See Also:
Constant Field Values

PARAMETER_SELECTION_TYPE

public static final java.lang.String PARAMETER_SELECTION_TYPE
The parameter name for "The type of the selection operator."

See Also:
Constant Field Values

PARAMETER_CROSSOVER_PROB

public static final java.lang.String PARAMETER_CROSSOVER_PROB
The parameter name for "The probability for crossovers."

See Also:
Constant Field Values

PARAMETER_HOLD_OUT_SET_RATIO

public static final java.lang.String PARAMETER_HOLD_OUT_SET_RATIO
The parameter name for "Uses this amount as a hold out set to estimate generalization error after learning (currently only used for multi-objective classification)."

See Also:
Constant Field Values

PARAMETER_SHOW_CONVERGENCE_PLOT

public static final java.lang.String PARAMETER_SHOW_CONVERGENCE_PLOT
The parameter name for "Indicates if a dialog with a convergence plot should be drawn."

See Also:
Constant Field Values

PARAMETER_SHOW_POPULATION_PLOT

public static final java.lang.String PARAMETER_SHOW_POPULATION_PLOT
See Also:
Constant Field Values

PARAMETER_RETURN_OPTIMIZATION_PERFORMANCE

public static final java.lang.String PARAMETER_RETURN_OPTIMIZATION_PERFORMANCE
The parameter name for "Indicates if final optimization fitness should be returned as performance."

See Also:
Constant Field Values
Constructor Detail

EvoSVM

public EvoSVM(OperatorDescription description)
Creates a new SVM which uses an Evolutionary Strategy approach for optimization.

Method Detail

shouldDeliverOptimizationPerformance

public boolean shouldDeliverOptimizationPerformance()
Returns the value of the corresponding parameter.

Overrides:
shouldDeliverOptimizationPerformance in class AbstractLearner

getOptimizationPerformance

public PerformanceVector getOptimizationPerformance()
Returns the optimization performance of the best result. This method must be called after training, not before.

Overrides:
getOptimizationPerformance in class AbstractLearner

learn

public Model learn(ExampleSet exampleSet)
            throws OperatorException
Learns and returns a model.

Throws:
OperatorException

supportsCapability

public boolean supportsCapability(LearnerCapability lc)
Returns true for numerical attributes, binominal classes, and numerical target attributes.


createBoundArray

public static double[] createBoundArray(double bound,
                                        int size)

determineMax

public static final double[] determineMax(double _c,
                                          Kernel kernel,
                                          ExampleSet exampleSet,
                                          int selectionType,
                                          int arraySize)

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.

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


Copyright © 2001-2009 by Rapid-I