Package smile.anomaly

Class SVM<T>

Type Parameters:
T - the data type of model input objects.
All Implemented Interfaces:
Serializable

public class SVM<T> extends KernelMachine<T>
One-class support vector machines for novelty detection. One-class SVM relies on identifying the smallest hypersphere consisting of all the data points. Therefore, it is sensitive to outliers. If the training data is not contaminated by outliers, the model is best suited for novelty detection.

References

  1. B. Schölkopf, J. Platt, J. Shawe-Taylor, A. J. Smola, and R. C. Williamson. Estimating the support of a high-dimensional distribution. Neural Computation, 2001.
  2. Jia Jiong and Zhang Hao-ran. A Fast Learning Algorithm for One-Class Support Vector Machine. ICNC 2007.
See Also:
  • Constructor Details

    • SVM

      public SVM(MercerKernel<T> kernel, T[] vectors, double[] weight, double b)
      Constructor.
      Parameters:
      kernel - Kernel function.
      vectors - The support vectors.
      weight - The weights of instances.
      b - The intercept;
  • Method Details

    • fit

      public static <T> SVM<T> fit(T[] x, MercerKernel<T> kernel)
      Fits a one-class SVM.
      Type Parameters:
      T - the data type.
      Parameters:
      x - training samples.
      kernel - the kernel function.
      Returns:
      the model.
    • fit

      public static <T> SVM<T> fit(T[] x, MercerKernel<T> kernel, double nu, double tol)
      Fits a one-class SVM.
      Type Parameters:
      T - the data type.
      Parameters:
      x - training samples.
      kernel - the kernel function.
      nu - the parameter sets an upper bound on the fraction of outliers (training examples regarded out-of-class) and it is a lower bound on the number of training examples used as Support Vector.
      tol - the tolerance of convergence test.
      Returns:
      the model.