SVM分类器(SVC
)的一个选项probability
默认为false。该文档未说明其作用。查看libsvm
源代码,它似乎在进行某种交叉验证。
LinearSVC
或都不存在此选项OneSVM
。
我需要为多个SVM模型(包括最后两个)计算AUC分数。我是否应该使用AUC分数decision_function(X)
作为阈值来计算?
回答我自己的问题。
首先,这是一个常见的“神话”,您需要绘制ROC曲线的概率。不,您需要在模型中设置某种阈值,然后才能更改。然后通过更改此阈值绘制ROC曲线。ROC曲线的要点当然是通过观察模型对观察结果的排序来了解模型对假设的再现程度。
对于SVM,我看到人们以两种方式为其绘制ROC曲线:
正如我在自己的问题中所提到的,使用与决策约束者的距离
使用偏差项作为SVM中的阈值:http : //researchgate.net/post/How_can_I_plot_determine_ROC_AUC_for_SVM。实际上,如果您使用SVC(probabilities=True)
CV,则将以这种方式为您计算概率,然后可以使用CV绘制ROC曲线。但是,正如我在链接中所提到的,如果直接通过改变偏差来绘制ROC曲线,则速度会更快。
如果我使用线性核,我认为#2与#1相同,因为在这种情况下,改变偏置会改变距离。