1 view

I am following the example shown in http://scikit-learn.org/stable/auto_examples/svm/plot_oneclass.html#example-svm-plot-oneclass-py, where a one class SVM is used for anomaly detection. Now, this may be a notation unique to scikit-learn, but I couldn't find an explanation of how to use the parameter nu given to the OneClassSVM constructor.

In http://scikit-learn.org/stable/modules/svm.html#nusvc, it is stated that the parameter nu is a reparametrization of the parameter C (which is the regularization parameter which I am familiar with) - but doesn't state how to perform that reparameterization.

Both formula and intuition will be much appreciated.

Thanks!

by (33.1k points)

SVM is the most commonly used machine learning algorithms, due to its wide range of functionalities and parameters.

There is a C parameter (Regularization parameter) in SVM, which can take any positive value. It is quite hard to choose that value correctly.

SVM can also take a new regularization parameter nu. This parameter is:

• bounded between 0 and 1

• has a direct interpretation

Relationship between C and nu

The relation between C and nu is represented by the following formula:

nu = A+B/C

Here A and B are constants

Conclusion

The C and nu parameters in SVM are equivalent to their classification power. The regularization in terms of nu is easier to evaluate as compared to C, but the nu SVM is usually harder to optimize, and runtime doesn't scale as well as the C variant with a number of input samples.