Guy*_*ini 24 python machine-learning scikit-learn
我遵循http://scikit-learn.org/stable/auto_examples/svm/plot_oneclass.html#example-svm-plot-oneclass-py中显示的示例,其中一类SVM用于异常检测.现在,这可能是scikit-learn独有的符号,但我找不到如何使用给予OneClassSVM构造函数的参数nu的解释.
在http://scikit-learn.org/stable/modules/svm.html#nusvc中,声明参数nu是参数C的重新参数化(这是我熟悉的正则化参数) - 但是没有没有说明如何执行重新参数化.
公式和直觉都将受到高度赞赏.
谢谢!
Ber*_*ler 47
参数C的问题是:
因此很难正确选择,人们不得不求助于交叉验证或直接实验来找到合适的价值.
作为回应Schölkopf等人.重新构造SVM以采用新的正则化参数nu.这个参数是:
参数nu是边际误差分数的上限和支持向量分数相对于训练样本总数的下限.例如,如果将其设置为0.05,则可以保证最多可以找到5%的训练样例被错误分类(但代价是小幅度),并且至少有5%的训练样例是支持向量.
C和nu之间的关系由以下公式控制:
nu = A+B/C
A和B是常数,遗憾的是不容易计算.
外卖消息是C和nu SVM在分类能力方面是等价的.与C相比,nu的正则化更容易解释,但是nu SVM通常更难以优化,并且运行时不像具有输入样本数量的C变量那样扩展.
更多细节(包括A和B的公式)可以在这里找到:Chang CC,Lin CJ - "训练nu-支持向量分类器:理论和算法"
| 归档时间: |
|
| 查看次数: |
15758 次 |
| 最近记录: |