org.biojava.stats.svm.tools
Class SuffixTreeKernel

java.lang.Object
  extended by org.biojava.stats.svm.tools.SuffixTreeKernel
All Implemented Interfaces:
Serializable, SVMKernel

public class SuffixTreeKernel
extends Object
implements SVMKernel, Serializable

Computes the dot-product of two suffix-trees as the sum of the products of the counts of all nodes they have in common.

This implementation allows you to scale the sub-space for each word length independently.

Author:
Matthew Pocock
See Also:
Serialized Form

Nested Class Summary
static interface SuffixTreeKernel.DepthScaler
          Encapsulates the scale factor to apply at a given depth.
static class SuffixTreeKernel.MultipleScalar
          Scale using a multiple of two DepthScalers.
static class SuffixTreeKernel.NullModelScaler
          Scales by 4^depth - equivalent to dividing by a probablistic flatt prior null model
static class SuffixTreeKernel.SelectionScalar
          Scale using a BitSet to allow/disallow depths.
static class SuffixTreeKernel.UniformScaler
          Scale all depths by 1.0
 
Constructor Summary
SuffixTreeKernel()
           
 
Method Summary
 double evaluate(Object a, Object b)
          Calculate the dot product between the SuffixTrees a and b.
 SuffixTreeKernel.DepthScaler getDepthScaler()
          Retrieve the current DepthScaler.
 void setDepthScaler(SuffixTreeKernel.DepthScaler depthScaler)
          Change the current DepthScaler to depthScaler.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SuffixTreeKernel

public SuffixTreeKernel()
Method Detail

getDepthScaler

public SuffixTreeKernel.DepthScaler getDepthScaler()
Retrieve the current DepthScaler.

Returns:
the current DepthScaler

setDepthScaler

public void setDepthScaler(SuffixTreeKernel.DepthScaler depthScaler)
Change the current DepthScaler to depthScaler.

Parameters:
depthScaler - the new DepthScaler to use

evaluate

public double evaluate(Object a,
                       Object b)
Calculate the dot product between the SuffixTrees a and b.

This is the sum of the dot products of each subspace for a given word length. Each subspace is scaled using the DepthScaler returned by getDepthScaler.

Specified by:
evaluate in interface SVMKernel
Parameters:
a - the first Object
b - the second Object
Returns:
a.b
Throws:
- class="type">ClassCastException if either a or b are not castable to SuffixTree

toString

public String toString()
Overrides:
toString in class Object