org.biojava.stats.svm
Class SparseVector.NormalizingKernel

java.lang.Object
  extended by org.biojava.stats.svm.SparseVector.NormalizingKernel
All Implemented Interfaces:
Serializable, SVMKernel
Enclosing class:
SparseVector

public static class SparseVector.NormalizingKernel
extends Object
implements SVMKernel, Serializable

A version of the standard dot-product kernel that scales each column independently.

Author:
Matthew Pocock
See Also:
Serialized Form

Constructor Summary
SparseVector.NormalizingKernel(List vectors)
          Generate a normalizing kernel defined by the SparseVectors in vectors.
SparseVector.NormalizingKernel(SparseVector s)
          Generate a normalizing kernel with the normalizing vector s.
 
Method Summary
 double evaluate(Object o1, Object o2)
          Evaluate the kernel function between two SparseVectors.
 SparseVector getNormalizingVector()
          Retrive the current normalizing vector.
 void setNormalizingVector(SparseVector nv)
          Set the normalizing vector.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SparseVector.NormalizingKernel

public SparseVector.NormalizingKernel(SparseVector s)
Generate a normalizing kernel with the normalizing vector s.

Parameters:
s - the SparseVector to normalize by

SparseVector.NormalizingKernel

public SparseVector.NormalizingKernel(List vectors)
Generate a normalizing kernel defined by the SparseVectors in vectors.

It will set up a normalizing vector that has weight that will scale each element so that the average score is 1.

Method Detail

getNormalizingVector

public SparseVector getNormalizingVector()
Retrive the current normalizing vector.

Returns:
the normalizing vector

setNormalizingVector

public void setNormalizingVector(SparseVector nv)
Set the normalizing vector.

Parameters:
nv - the new normalizing vector

evaluate

public double evaluate(Object o1,
                       Object o2)
Evaluate the kernel function between two SparseVectors.

This function is equivalent to:
k(a, b) = sum_i ( a_i * b_i * nv_i )
where nv_i is the value of the normalizing vector at index i. This can be thought of as scaling each vector at index i by sqrt(nv_i).

Specified by:
evaluate in interface SVMKernel

toString

public String toString()
Overrides:
toString in class Object