Documentation of 'jsat.distributions.kernels.GeneralRBFKernel' Java class
GeneralRBFKernel
jsat.distributions.kernels

Class GeneralRBFKernel

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, KernelTrick, Parameterized


    public class GeneralRBFKernel
    extends DistanceMetricBasedKernel
    This class provides a generalization of the RBFKernel to arbitrary distance metrics, and is of the form exp(-d(x, y)2/(2 σ2 )). So long as the distance metric is valid, the resulting kernel trick will be a valid kernel.

    If the EuclideanDistance is used, then this becomes equivalent to the RBFKernel.

    Note, that since the KernelTrick has no concept of training - the distance metric can not require training either. A pre-trained metric can be admissible thought.
    See Also:
    Serialized Form
    • Constructor Detail

      • GeneralRBFKernel

        public GeneralRBFKernel(DistanceMetric d,
                                double sigma)
        Creates a new Generic RBF Kernel
        Parameters:
        d - the distance metric to use
        sigma - the standard deviation to use
    • Method Detail

      • setSigma

        public void setSigma(double sigma)
        Sets the kernel width parameter, which must be a positive value. Larger values indicate a larger width
        Parameters:
        sigma - the sigma value
      • getSigma

        public double getSigma()
        Returns:
        the width parameter to use for the kernel
      • eval

        public double eval(Vec a,
                           Vec b)
        Description copied from interface: KernelTrick
        Evaluate this kernel function for the two given vectors.
        Parameters:
        a - the first vector
        b - the first vector
        Returns:
        the evaluation
      • eval

        public double eval(int a,
                           Vec b,
                           java.util.List<java.lang.Double> qi,
                           java.util.List<? extends Vec> vecs,
                           java.util.List<java.lang.Double> cache)
        Description copied from interface: KernelTrick
        Computes the kernel product between one vector in the original list of vectors with that of another vector not from the original list, but had information generated by KernelTrick.getQueryInfo(jsat.linear.Vec).
        If the cache input is null, then KernelTrick.eval(jsat.linear.Vec, jsat.linear.Vec) will be called directly.
        Parameters:
        a - the index of the vector in the cache
        b - the other vector
        qi - the query information about b
        vecs - the list of vectors used to build the cache
        cache - the cache associated with the given list of vectors
        Returns:
        the kernel product of the two vectors
      • eval

        public double eval(int a,
                           int b,
                           java.util.List<? extends Vec> vecs,
                           java.util.List<java.lang.Double> cache)
        Description copied from interface: KernelTrick
        Produces the correct kernel evaluation given the training set and the cache generated by KernelTrick.getAccelerationCache(List). The training vectors should be in the same order.
        Parameters:
        a - the index of the first training vector
        b - the index of the second training vector
        vecs - the list of training set vectors
        cache - the double list of cache values generated by this kernel for the given training set
        Returns:
        the same kernel evaluation result as KernelTrick.eval(jsat.linear.Vec, jsat.linear.Vec)
      • guessSigma

        public Distribution guessSigma(DataSet d)
        Guess the distribution to use for the kernel width term σ in the General RBF kernel.
        Parameters:
        d - the data set to get the guess for
        Returns:
        the guess for the σ parameter in the General RBF Kernel
      • guessSigma

        public static Distribution guessSigma(DataSet d,
                                              DistanceMetric dist)
        Guess the distribution to use for the kernel width term σ in the General RBF kernel.
        Parameters:
        d - the data set to get the guess for
        dist - the distance metric to assume is being used in the kernel
        Returns:
        the guess for the σ parameter in the General RBF Kernel
      • normalized

        public boolean normalized()
        Description copied from interface: KernelTrick
        This method indicates if a kernel is a normalized kernel or not. A normalized kernel is one in which k(x,x) = 1 for the same object, and no value greater than 1 can be returned.
        Returns:
        true if this is a normalized kernel. false otherwise.

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.