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: 4549 $
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz), Shane Legg (shane@intelligenesis.net) (sparse vector code), Stuart Inglis (stuart@reeltwo.com) (sparse vector code), J. Lindgren (jtlindgr{at}cs.helsinki.fi) (RBF kernel), 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 Description CachedKernel()
default constructor - does nothing.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
buildKernel(Instances data)
builds the kernel with the given data.java.lang.String
cacheSizeTipText()
Returns the tip text for this propertyvoid
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 cachejava.lang.String[]
getOptions()
Gets the current settings of the Kernel.java.util.Enumeration
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
checksTurnedOffTipText, debugTipText, forName, getCapabilities, getChecksTurnedOff, getDebug, getRevision, globalInfo, makeCopies, makeCopy, setChecksTurnedOff, setDebug
-
-
-
-
Method Detail
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classKernel
- 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 interfaceOptionHandler
- Overrides:
setOptions
in classKernel
- 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 interfaceOptionHandler
- Overrides:
getOptions
in classKernel
- 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 classKernel
- Parameters:
id1
- the index of the first instance in the datasetid2
- the index of the second instance in the datasetinst1
- 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.
-
numCacheHits
public int numCacheHits()
Returns the number of cache hits on dot products.- Specified by:
numCacheHits
in classKernel
- Returns:
- the number of cache hits.
-
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 classKernel
- Parameters:
data
- the data to base the kernel on- Throws:
java.lang.Exception
- if something goes wrong
-
-