【发布时间】:2021-03-21 15:45:44
【问题描述】:
我的工作是将用户的合法数据与进口商的数据进行分类。我使用二进制 SVM 分类器来输出这两个类的概率。然后使用 sklearn 中的 Roc 曲线返回不同阈值的 TPR 和 FPR 向量,如下所示:
classifier = SVC(kernel='rbf', probability=True, random_state=0, gamma=0.0001, C=0.5)
classifier.fit(X_train, y_train)
y_probas = classifier.predict_proba(X_test)
fpr, tpr, thresholds = metrics.roc_curve(y_true, y_probas, pos_label=0)
fnr = 1- tpr
输出的fpr和tpr向量如下:
但是,为了计算 EER 值,我搜索了很多,发现人们谈论不同的建议。我知道 EER 分数应该是 FNR 和 FPR 相等时的值(或者至少它们之间的距离最小,如下图红圈所示)。
这是否意味着 EER = fnr[%] = 8.33 和 fpr[%] = 10.6 之间的差值?我的意思是 EER = (10.6- 8.33) = 2.27%?
还是这两个值的最小值?我的意思是 EER = 8.33%
还是两个值的平均值? EER = (10.6 + 8.33)/2 = 9.465
我对根据最佳 FNR 和 FPR 值计算 EER 的正确方法感到困惑。
【问题讨论】:
标签: python scikit-learn svm