com.rapidminer.tools.math.kernels
Class Kernel

java.lang.Object
  extended by com.rapidminer.tools.math.kernels.Kernel
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
AnovaKernel, DotKernel, EpanechnikovKernel, GaussianCombinationKernel, MultiquadricKernel, PolynomialKernel, RBFKernel, SigmoidKernel

public abstract class Kernel
extends java.lang.Object
implements java.io.Serializable

Returns the distance of two examples. The method init(ExampleSet) must be invoked before the correct distances can be returned. Please note that subclasses must provide an empty constructor to allow kernel creation via reflection (for reading kernels from disk).

Author:
Ingo Mierswa
See Also:
Serialized Form

Field Summary
static int KERNEL_ANOVA
          Indicates an anova kernel.
static int KERNEL_DOT
          Indicates a linear kernel.
static int KERNEL_EPANECHNIKOV
          Indicates a Epanechnikov kernel.
static int KERNEL_GAUSSIAN_COMBINATION
          Indicates a Gaussian combination kernel.
static int KERNEL_MULTIQUADRIC
          Indicates a multiquadric kernel.
static int KERNEL_POLYNOMIAL
          Indicates a polynomial kernel.
static int KERNEL_RADIAL
          Indicates a rbf kernel.
static int KERNEL_SIGMOID
          Indicates a sigmoid kernel.
static java.lang.String[] KERNEL_TYPES
          The kernels which can be used for the EvoSVM.
static java.lang.String PARAMETER_KERNEL_A
          The parameter name for "The SVM kernel parameter a (neural).
static java.lang.String PARAMETER_KERNEL_B
          The parameter name for "The SVM kernel parameter b (neural).
static java.lang.String PARAMETER_KERNEL_DEGREE
          The parameter name for "The SVM kernel parameter degree (polynomial, anova, Epanechnikov).
static java.lang.String PARAMETER_KERNEL_GAMMA
          The parameter name for "The SVM kernel parameter gamma (RBF, anova).
static java.lang.String PARAMETER_KERNEL_SHIFT
          The parameter name for "The SVM kernel parameter shift (polynomial, Multiquadric).
static java.lang.String PARAMETER_KERNEL_SIGMA1
          The parameter name for "The SVM kernel parameter sigma1 (Epanechnikov, Gaussian Combination, Multiquadric).
static java.lang.String PARAMETER_KERNEL_SIGMA2
          The parameter name for "The SVM kernel parameter sigma2 (Gaussian Combination).
static java.lang.String PARAMETER_KERNEL_SIGMA3
          The parameter name for "The SVM kernel parameter sigma3 (Gaussian Combination).
static java.lang.String PARAMETER_KERNEL_TYPE
          The parameter name for "The SVM kernel type"
 
Constructor Summary
Kernel()
           
 
Method Summary
abstract  double calculateDistance(double[] x1, double[] x2)
          Subclasses must implement this method.
static Kernel createKernel(ParameterHandler handler)
           
 double[] getAttributeValues(int i)
           
 double getDistance(int x1, int x2)
          Returns the distance between the examples with the given indices.
abstract  java.lang.String getDistanceFormula(double[] x, java.lang.String[] attributeNames)
           
static java.util.Collection<ParameterType> getParameters(ParameterHandler parameterHandler)
           
 double getSum(java.util.Collection supportVectors, double[] currentX)
          Calculates w*x from the given support vectors using this kernel function.
abstract  int getType()
          Must return one out of KERNEL_DOT, KERNEL_RADIAL, KERNEL_POLYNOMIAL, KERNEL_SIGMOID, KERNEL_ANOVA, KERNEL_EPANECHNIKOV, KERNEL_GAUSSIAN_COMBINATION, or KERNEL_MULTIQUADRIC.
 void init(ExampleSet exampleSet)
          Calculates all distances and store them in a matrix to speed up optimization.
 double innerProduct(double[] x1, double[] x2)
          Calculates the inner product of the given vectors.
 double norm2(double[] x1, double[] x2)
          Calculates the L2-norm, i.e.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PARAMETER_KERNEL_TYPE

public static final java.lang.String PARAMETER_KERNEL_TYPE
The parameter name for "The SVM kernel type"

See Also:
Constant Field Values

PARAMETER_KERNEL_GAMMA

public static final java.lang.String PARAMETER_KERNEL_GAMMA
The parameter name for "The SVM kernel parameter gamma (RBF, anova)."

See Also:
Constant Field Values

PARAMETER_KERNEL_SIGMA1

public static final java.lang.String PARAMETER_KERNEL_SIGMA1
The parameter name for "The SVM kernel parameter sigma1 (Epanechnikov, Gaussian Combination, Multiquadric)."

See Also:
Constant Field Values

PARAMETER_KERNEL_SIGMA2

public static final java.lang.String PARAMETER_KERNEL_SIGMA2
The parameter name for "The SVM kernel parameter sigma2 (Gaussian Combination)."

See Also:
Constant Field Values

PARAMETER_KERNEL_SIGMA3

public static final java.lang.String PARAMETER_KERNEL_SIGMA3
The parameter name for "The SVM kernel parameter sigma3 (Gaussian Combination)."

See Also:
Constant Field Values

PARAMETER_KERNEL_DEGREE

public static final java.lang.String PARAMETER_KERNEL_DEGREE
The parameter name for "The SVM kernel parameter degree (polynomial, anova, Epanechnikov)."

See Also:
Constant Field Values

PARAMETER_KERNEL_SHIFT

public static final java.lang.String PARAMETER_KERNEL_SHIFT
The parameter name for "The SVM kernel parameter shift (polynomial, Multiquadric)."

See Also:
Constant Field Values

PARAMETER_KERNEL_A

public static final java.lang.String PARAMETER_KERNEL_A
The parameter name for "The SVM kernel parameter a (neural)."

See Also:
Constant Field Values

PARAMETER_KERNEL_B

public static final java.lang.String PARAMETER_KERNEL_B
The parameter name for "The SVM kernel parameter b (neural)."

See Also:
Constant Field Values

KERNEL_TYPES

public static final java.lang.String[] KERNEL_TYPES
The kernels which can be used for the EvoSVM.


KERNEL_DOT

public static final int KERNEL_DOT
Indicates a linear kernel.

See Also:
Constant Field Values

KERNEL_RADIAL

public static final int KERNEL_RADIAL
Indicates a rbf kernel.

See Also:
Constant Field Values

KERNEL_POLYNOMIAL

public static final int KERNEL_POLYNOMIAL
Indicates a polynomial kernel.

See Also:
Constant Field Values

KERNEL_SIGMOID

public static final int KERNEL_SIGMOID
Indicates a sigmoid kernel.

See Also:
Constant Field Values

KERNEL_ANOVA

public static final int KERNEL_ANOVA
Indicates an anova kernel.

See Also:
Constant Field Values

KERNEL_EPANECHNIKOV

public static final int KERNEL_EPANECHNIKOV
Indicates a Epanechnikov kernel.

See Also:
Constant Field Values

KERNEL_GAUSSIAN_COMBINATION

public static final int KERNEL_GAUSSIAN_COMBINATION
Indicates a Gaussian combination kernel.

See Also:
Constant Field Values

KERNEL_MULTIQUADRIC

public static final int KERNEL_MULTIQUADRIC
Indicates a multiquadric kernel.

See Also:
Constant Field Values
Constructor Detail

Kernel

public Kernel()
Method Detail

getType

public abstract int getType()
Must return one out of KERNEL_DOT, KERNEL_RADIAL, KERNEL_POLYNOMIAL, KERNEL_SIGMOID, KERNEL_ANOVA, KERNEL_EPANECHNIKOV, KERNEL_GAUSSIAN_COMBINATION, or KERNEL_MULTIQUADRIC.


calculateDistance

public abstract double calculateDistance(double[] x1,
                                         double[] x2)
Subclasses must implement this method.


getDistanceFormula

public abstract java.lang.String getDistanceFormula(double[] x,
                                                    java.lang.String[] attributeNames)

init

public void init(ExampleSet exampleSet)
Calculates all distances and store them in a matrix to speed up optimization.


getDistance

public double getDistance(int x1,
                          int x2)
Returns the distance between the examples with the given indices.


getAttributeValues

public double[] getAttributeValues(int i)

innerProduct

public double innerProduct(double[] x1,
                           double[] x2)
Calculates the inner product of the given vectors.


norm2

public double norm2(double[] x1,
                    double[] x2)
Calculates the L2-norm, i.e. ||x-y||^2.


getSum

public double getSum(java.util.Collection supportVectors,
                     double[] currentX)
Calculates w*x from the given support vectors using this kernel function.


createKernel

public static Kernel createKernel(ParameterHandler handler)
                           throws UndefinedParameterError
Throws:
UndefinedParameterError

getParameters

public static java.util.Collection<ParameterType> getParameters(ParameterHandler parameterHandler)


Copyright © 2001-2009 by Rapid-I