如何计算 TAR (%) @ FAR = 0.1% in Python?
how do I calculate TAR (%) @ FAR = 0.1% in Python?
我在看一篇论文,论文中的结果是这样呈现的:
我想为我的模型制作一个类似的 table。使用下面的代码我得到了 FAR 和 TAR 值。
from sklearn import metrics
test = [0, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,1, 0]
pred = [0.04172871, 0.01611879, 0.01073375, 0.03344169 ,0.04172871, 0.04172871, 0.00430162 ,0.04172871 ,0.04172871 ,0.04172871 ,0.07977659, 0.905772,0.9396076, 0.03344169, 0.04172871, 0.09125287, 0.02964183, 0.0641269,0.04172871 ,0.04172871, 0.04172871, 0.0641269 , 0.04172871, 0.04172871,0.9919831 , 0.04172871, 0.01611879 ,0.04172871, 0.37865442 ,0.00240888]
far, tar, thresholds = metrics.roc_curve(Y_test,p)
我应该如何修正 FAR = 0.1% 以及如何使用 Python 计算 TAR% @FAR = 0.1%?
如果您熟悉 ROC 曲线,您就会知道曲线本身不会为您的模型提供 TRP (True Positive Rate)
和 FPR (False positive Rate)
的任何特定值。当您在模型产生的分布上移动某个阈值时,它会简单地跟踪 TPR
相对于 FPR
的演变。
因此,如果您想在 FPR=0.1%
处计算 TPR
,您有两个选择:
您在 far
中有值 FPR = 0.1%
,您只需检索其索引以在同一位置获得相应的 TRP
或 tar
。
或者您在 far
中没有确切的值 FPR=0.1%
,在这种情况下,您可以获得值 0.1%
下方和上方的相应元组 (far, tar)
和执行线性插值以计算精确值。
我在看一篇论文,论文中的结果是这样呈现的:
我想为我的模型制作一个类似的 table。使用下面的代码我得到了 FAR 和 TAR 值。
from sklearn import metrics
test = [0, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,1, 0]
pred = [0.04172871, 0.01611879, 0.01073375, 0.03344169 ,0.04172871, 0.04172871, 0.00430162 ,0.04172871 ,0.04172871 ,0.04172871 ,0.07977659, 0.905772,0.9396076, 0.03344169, 0.04172871, 0.09125287, 0.02964183, 0.0641269,0.04172871 ,0.04172871, 0.04172871, 0.0641269 , 0.04172871, 0.04172871,0.9919831 , 0.04172871, 0.01611879 ,0.04172871, 0.37865442 ,0.00240888]
far, tar, thresholds = metrics.roc_curve(Y_test,p)
我应该如何修正 FAR = 0.1% 以及如何使用 Python 计算 TAR% @FAR = 0.1%?
如果您熟悉 ROC 曲线,您就会知道曲线本身不会为您的模型提供 TRP (True Positive Rate)
和 FPR (False positive Rate)
的任何特定值。当您在模型产生的分布上移动某个阈值时,它会简单地跟踪 TPR
相对于 FPR
的演变。
因此,如果您想在 FPR=0.1%
处计算 TPR
,您有两个选择:
您在 far
中有值 FPR = 0.1%
,您只需检索其索引以在同一位置获得相应的 TRP
或 tar
。
或者您在 far
中没有确切的值 FPR=0.1%
,在这种情况下,您可以获得值 0.1%
下方和上方的相应元组 (far, tar)
和执行线性插值以计算精确值。