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