weka.classifiers.functions.supportVector

## Class CachedKernel

- java.lang.Object
- - weka.classifiers.functions.supportVector.Kernel
  - - weka.classifiers.functions.supportVector.CachedKernel

- All Implemented Interfaces:
    java.io.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: 14534 $
  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:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CachedKernel()` default constructor - does nothing.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `buildKernel(Instances data)` builds the kernel with the given data.
    `java.lang.String` | `cacheSizeTipText()` Returns the tip text for this property
    `void` | `clean()` Frees the cache used by the kernel.
    `double` | `eval(int id1, int id2, Instance inst1)` Implements the abstract function of Kernel using the cache.
    `int` | `getCacheSize()` Gets the size of the cache
    `java.lang.String[]` | `getOptions()` Gets the current settings of the Kernel.
    `java.util.Enumeration<Option>` | `listOptions()` Returns an enumeration describing the available options.
    `int` | `numCacheHits()` Returns the number of cache hits on dot products.
    `int` | `numEvals()` Returns the number of time Eval has been called.
    `void` | `setCacheSize(int value)` Sets the size of the cache to use (a prime number)
    `void` | `setOptions(java.lang.String[] options)` Parses a given list of options.

    - ### Methods inherited from class weka.classifiers.functions.supportVector.Kernel

      `debugTipText, forName, getCapabilities, getChecksTurnedOff, getDebug, getDoNotCheckCapabilities, getRevision, globalInfo, makeCopies, makeCopy, setChecksTurnedOff, setDebug, setDoNotCheckCapabilities`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CachedKernel

          public CachedKernel()

      default constructor - does nothing.

  - ### Method Detail

    - #### listOptions

          public java.util.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(java.lang.String[] options)
                          throws java.lang.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:
        `java.lang.Exception` - if an option is not supported

    - #### getOptions

          public java.lang.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 java.lang.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:
        `java.lang.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 java.lang.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 java.lang.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:
        `java.lang.Exception` - if something goes wrong