查找SVM模型的AUC分数

我知道支持向量机算法不计算概率,这是找到 AUC 值所需的,还有其他方法可以找到 AUC 分数吗?

from sklearn.svm import SVC
model_ksvm = SVC(kernel = 'rbf', random_state = 0)
model_ksvm.fit(X_train, y_train)

model_ksvm.predict_proba(X_test)

我无法从 SVM 算法获得概率输出,没有概率输出我无法获得 AUC 分数,而我可以通过其他算法获得。

回答

你真的不需要ROC 的概率,只需要任何类型的置信度分数。您需要根据样本属于正类的可能性对样本进行排序。支持向量机可以为此目的使用与分离平面的(有符号)距离,并且sklearn在使用 AUC 评分时确实会在引擎盖下自动执行此操作:它使用该decision_function方法,即有符号距离。

您还probability可以在 SVC ( docs ) 中设置该选项,该选项在SVM 之上拟合 Platt 校准模型以产生概率输出:

model_ksvm = SVC(kernel='rbf', probability=True, random_state=0)

但这将导致相同的 AUC,因为 Platt 校准只是将有符号距离单调地映射到概率。


以上是查找SVM模型的AUC分数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>