我们希望使用带有交叉验证的SGD分类器(损失函数为hinge)来生成ROC曲线,但由于ROC曲线需要概率支持,而这种方法不支持。我们坚持使用hinge损失函数,因为它符合我们的需求,并且希望通过ROC曲线来验证训练模型的准确性。请建议如何使用损失函数为hinge的SGD分类器和交叉验证来生成ROC曲线。
回答:
在这里,您可以为“loss=hinge”使用决策函数,它会给出到超平面的距离,下面是如何应用的示例:
svm_clf.fit(Xtrain, Xtarget)
score_roc = svm_clf.decision_function(Ytest)
fpr, tpr, thresholds = metrics.roc_curve(Ytarget, score_roc)
roc_auc = auc(fpr, tpr)
plt.title('Receiver Operating Characteristic')
plt.plot(fpr, tpr, 'b', label='AUC = %0.2f' % roc_auc)
plt.legend(loc='lower right')
plt.ylabel('True Positive Rate')
plt.xlabel('False Positive Rate')
plt.show()