org.biojava.stats.svm
Class SparseVector.NormalizingKernel

java.lang.Object
  |
  +--org.biojava.stats.svm.SparseVector.NormalizingKernel
Enclosing class:
SparseVector

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

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

Author:
Matthew Pocock
See Also:
Serialized Form

Constructor Summary
SparseVector.NormalizingKernel(java.util.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(java.lang.Object o1, java.lang.Object o2)
          Evaluate the kernel function between two SparseVectors.
 SparseVector getNormalizingVector()
          Retrive the current normalizing vector.
 void setNormalizingVector(SparseVector nv)
          Set the normalizing vector.
 java.lang.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(java.util.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:
the - new normalizing vector

evaluate

public double evaluate(java.lang.Object o1,
                       java.lang.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 java.lang.String toString()
Overrides:
toString in class java.lang.Object