@CodeReview(reviewer="Kevin R. Dixon", date="2009-07-08", changesNeeded=false, comments={"Made clone call super.clone.","Looks fine otherwise."}) public class SigmoidKernel extends AbstractCloneableSerializable implements Kernel<Vectorizable>
SigmoidKernel
class implements a sigmoid kernel based on the
hyperbolic tangent. The kernel it computes is:
tanh(kappa * (x dot y) + c)Modifier and Type | Field and Description |
---|---|
protected double |
constant
The constant used in the sigmoid.
|
static double |
DEFAULT_CONSTANT
The default value for the constant is 0.0.
|
static double |
DEFAULT_KAPPA
The default value for kappa is 1.0.
|
protected double |
kappa
The kappa value to multiply times the dot product.
|
Constructor and Description |
---|
SigmoidKernel()
Creates a new instance of SigmoidKernel with default values of 1.0 for
kappa and 0.0 for the constant.
|
SigmoidKernel(double kappa,
double constant)
Creates a new instance of SigmoidKernel from its two needed parameters:
kappa and a constant.
|
SigmoidKernel(SigmoidKernel other)
Creates a new copy of a SigmoidKernel.
|
Modifier and Type | Method and Description |
---|---|
SigmoidKernel |
clone()
This makes public the clone method on the
Object class and
removes the exception that it throws. |
double |
evaluate(Vectorizable x,
Vectorizable y)
Evaluates the sigmoid kernel between the two given vectors, which is:
tanh(kappa * (x dot y) + c)
|
double |
getConstant()
Gets the constant inside of the sigmoid kernel.
|
double |
getKappa()
Gets kappa, the value multiplied by the dot product of the two vectors
before it is passed to the hyperbolic tangent function.
|
void |
setConstant(double constant)
Sets the constant inside of the sigmoid kernel.
|
void |
setKappa(double kappa)
Sets kappa, the value multiplied by the dot product of the two vectors
before it is passed to the hyperbolic tangent function.
|
public static final double DEFAULT_KAPPA
public static final double DEFAULT_CONSTANT
protected double kappa
protected double constant
public SigmoidKernel()
public SigmoidKernel(double kappa, double constant)
kappa
- The value multiplied by the dot product of the two vectors
before it is passed to the hyperbolic tangent function.constant
- The constant inside of the sigmoid kernel.public SigmoidKernel(SigmoidKernel other)
other
- The SigmoidKernel to copy.public SigmoidKernel clone()
AbstractCloneableSerializable
Object
class and
removes the exception that it throws. Its default behavior is to
automatically create a clone of the exact type of object that the
clone is called on and to copy all primitives but to keep all references,
which means it is a shallow copy.
Extensions of this class may want to override this method (but call
super.clone()
to implement a "smart copy". That is, to target
the most common use case for creating a copy of the object. Because of
the default behavior being a shallow copy, extending classes only need
to handle fields that need to have a deeper copy (or those that need to
be reset). Some of the methods in ObjectUtil
may be helpful in
implementing a custom clone method.
Note: The contract of this method is that you must use
super.clone()
as the basis for your implementation.clone
in interface CloneableSerializable
clone
in class AbstractCloneableSerializable
public double evaluate(Vectorizable x, Vectorizable y)
evaluate
in interface Kernel<Vectorizable>
x
- The first vector.y
- The second vector.public double getKappa()
public void setKappa(double kappa)
kappa
- The kappa value for the sigmoid kernel.public double getConstant()
public void setConstant(double constant)
constant
- The constant term used for the sigmoid kernel.