Class CachedKernel

java.lang.Object
weka.classifiers.functions.supportVector.Kernel
weka.classifiers.functions.supportVector.CachedKernel
All Implemented Interfaces:
Serializable, CapabilitiesHandler, OptionHandler, RevisionHandler
Direct Known Subclasses:
PolyKernel, Puk, RBFKernel

public abstract class CachedKernel extends Kernel
Base class for RBFKernel and PolyKernel that implements a simple LRU. (least-recently-used) cache if the cache size is set to a value > 0. Otherwise it uses a full cache.
Version:
$Revision: 14512 $
Author:
Eibe Frank (eibe@cs.waikato.ac.nz), Shane Legg (shane@intelligenesis.net) (sparse vector code), Stuart Inglis (stuart@reeltwo.com) (sparse vector code), Steven Hugg (hugg@fasterlight.com) (refactored, LRU cache), Bernhard Pfahringer (bernhard@cs.waikato.ac.nz) (full cache)
See Also:
  • Constructor Details

    • CachedKernel

      public CachedKernel()
      default constructor - does nothing.
  • Method Details

    • listOptions

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class Kernel
      Returns:
      an enumeration of all the available options.
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses a given list of options.

      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class Kernel
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

      public String[] getOptions()
      Gets the current settings of the Kernel.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class Kernel
      Returns:
      an array of strings suitable for passing to setOptions
    • eval

      public double eval(int id1, int id2, Instance inst1) throws Exception
      Implements the abstract function of Kernel using the cache. This method uses the evaluate() method to do the actual dot product.
      Specified by:
      eval in class Kernel
      Parameters:
      id1 - the index of the first instance in the dataset
      id2 - the index of the second instance in the dataset
      inst1 - the instance corresponding to id1 (used if id1 == -1)
      Returns:
      the result of the kernel function
      Throws:
      Exception - if something goes wrong
    • numEvals

      public int numEvals()
      Returns the number of time Eval has been called.
      Specified by:
      numEvals in class Kernel
      Returns:
      the number of kernel evaluation.
    • numCacheHits

      public int numCacheHits()
      Returns the number of cache hits on dot products.
      Specified by:
      numCacheHits in class Kernel
      Returns:
      the number of cache hits.
    • clean

      public void clean()
      Frees the cache used by the kernel.
      Specified by:
      clean in class Kernel
    • setCacheSize

      public void setCacheSize(int value)
      Sets the size of the cache to use (a prime number)
      Parameters:
      value - the size of the cache
    • getCacheSize

      public int getCacheSize()
      Gets the size of the cache
      Returns:
      the cache size
    • cacheSizeTipText

      public String cacheSizeTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • buildKernel

      public void buildKernel(Instances data) throws Exception
      builds the kernel with the given data. Initializes the kernel cache. The actual size of the cache in bytes is (64 * cacheSize).
      Overrides:
      buildKernel in class Kernel
      Parameters:
      data - the data to base the kernel on
      Throws:
      Exception - if something goes wrong