@Reference(authors="B. Sch\u00f6lkopf, J. C. Platt, J. Shawe-Taylor, A. J. Smola, R. C. Williamson", title="Estimating the support of a high-dimensional distribution", booktitle="Neural computation 13.7", url="https://doi.org/10.1162/089976601750264965", bibkey="DBLP:journals/neco/ScholkopfPSSW01") public class LibSVMOneClassOutlierDetection<V extends NumberVector> extends AbstractAlgorithm<OutlierResult> implements OutlierAlgorithm
Important note: from literature, the one-class SVM is trained as if 0 was the only counterexample. Outliers will only be detected when they are close to the origin in kernel space! In our experience, results from this method are rather mixed, in particular as you would likely need to tune hyperparameters. Results may be better if you have a training data set with positive examples only, then apply it only to new data (which is currently not supported in this implementation, it assumes a single-dataset scenario).
Reference:
B. Schölkopf, J. C. Platt, J. Shawe-Taylor, A. J. Smola, R. C.
Williamson
Estimating the support of a high-dimensional distribution
Neural computation 13.7
Modifier and Type | Class and Description |
---|---|
static class |
LibSVMOneClassOutlierDetection.Parameterizer<V extends NumberVector>
Parameterization class.
|
static class |
LibSVMOneClassOutlierDetection.SVMKernel
Kernel functions.
|
Modifier and Type | Field and Description |
---|---|
protected LibSVMOneClassOutlierDetection.SVMKernel |
kernel
Kernel function in use.
|
private static Logging |
LOG
Class logger.
|
(package private) static libsvm.svm_print_interface |
LOG_HELPER
Setup logging helper for SVM.
|
(package private) double |
nu
Nu parameter.
|
ALGORITHM_ID
Constructor and Description |
---|
LibSVMOneClassOutlierDetection(LibSVMOneClassOutlierDetection.SVMKernel kernel,
double nu)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
OutlierResult |
run(Relation<V> relation)
Run one-class SVM.
|
run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
protected LibSVMOneClassOutlierDetection.SVMKernel kernel
double nu
static final libsvm.svm_print_interface LOG_HELPER
public LibSVMOneClassOutlierDetection(LibSVMOneClassOutlierDetection.SVMKernel kernel, double nu)
kernel
- Kernel to use with SVM.nu
- Nu parameterpublic OutlierResult run(Relation<V> relation)
relation
- Data relationpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<OutlierResult>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<OutlierResult>
Copyright © 2019 ELKI Development Team. License information.