## org.biojava.stats.svm.tools
Class SuffixTreeKernel

    java.lang.Object
      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:
    `<span` - class="type">ClassCastException if either a or b are not castable to SuffixTree

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`