在活体检测中经常使用roc_curve来绘制ROC曲线,通过返回的TPR、FPR和对应的阈值来计算最优阈值

sklearn.metrics.roc_curve的返回值为三个list,分别为TPR、FPR和对应的阈值,即:

sklearn.metrics.roc_curve根据样本原本的标注和模式预测的成绩,使用不同的阈值去计算TPR和FPR,每一个阈值对应一个TPR和FPR,他们被存储在函数返回列表的对应位置:

fpr, tpr, threshold = roc_curve(target_labels, scorce, pos_label=1)

from sklearn.metrics import roc_curvedef get_err_threhold(fpr, tpr, threshold):differ_tpr_fpr_1=tpr+fpr-1.0right_index = np.argmin(np.abs(differ_tpr_fpr_1))best_th = threshold[right_index]err = fpr[right_index]    return err, best_th, right_indextarget_labels = []  # 分类样本的真实标签
scorce = []  # 分类模型预测出的样本成绩#  pos_lable=1 表示正样本是用1标注的
fpr, tpr, threshold = roc_curve(target_labels, scorce, pos_label=1) # best_threshold就是最好的阈值,err为错误率,index为最优阈值的坐标
err, best_threshold, index = get_err_threhold(fpr, tpr, threshold)

TPR:真正类率,即所有正样本中被分类器预测为正样本的个数。

FPR:假正类率,即所有负样本中被分类器预测为正样本的个数。

在最理想情况下,我们都希望模型能够将所有的正类均正确分类,即TPR=1。所有的负类也正确分类对应FPR=0。

因此,理想情况下ROC曲线越靠拢图像中(0,1)点,表示模型在此阈值对应的模型效果最好。

如何根据返回的fpr, tpr, threshold = roc_curve(target_labels, scorce, pos_label=1)找到最佳阈值?

首先计算:differ_tpr_fpr_1= tpr + fpr -1.0

在最理想的点(1,0)结果为0,其他情况下differ_tpr_fpr_1的值在-1~1之间,我们可以对differ_tpr_fpr求绝对值,来表示该点与理想点的距离,从而距离越小,此点越优

right_index = np.argmin(np.abs(differ_tpr_fpr_1))

right_index为最优点的下表

因此我们可以得到最优阈值,使得AUC值最大

活体检测 根据TPR、FPR绘制图像计算最优模型阈值相关推荐

  1. 人脸识别中的活体检测算法综述

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 1. 什 ...

  2. 人脸识别中的活体检测算法

    人脸识别中的活体检测算法综述 1. 什么是活体检测? 判断捕捉到的人脸是真实人脸,还是伪造的人脸攻击(如:彩色纸张打印人脸图,电子设备屏幕中的人脸数字图像 以及 面具 等) 2. 为什么需要活体检测? ...

  3. 模型评估指标-2-ROC与PR曲线对比,TPR/FPR/Precision关系,3种特殊的评估指标

    导语:在进阶篇里面,将会讨论ROC和PR曲线的联系,在不平衡数据中的偏差问题,同时利用公式来说明TPR/FPR/Precision三者之间的关系,在第三部分结合业务场景将介绍了几个特殊指标,但是没有说 ...

  4. 计算机视觉子方向,计算机视觉方向简介 | 人脸识别中的活体检测算法综述

    原标题:计算机视觉方向简介 | 人脸识别中的活体检测算法综述 本文转载自"SIGAI人工智能学习与实践平台"(ID:SIGAICN) 导言 1. 什么是活体检测? 判断捕捉到的人脸 ...

  5. 38、静默活体检测测试及ncnn、mnn部署

    基本思想:因为最近需要搞个Android端的活体检测,github了一下,git到小视科技公司的一个开源项目,听了大佬的介绍,因此测试了一下,效果还可以,于是进行了模型转换和ncnn.mnn部署 本实 ...

  6. 使用face_recognition:摄像头实时给人脸打马赛克、疲劳检测、活体检测(张嘴检测)、计算两张人脸之间的相似度、人脸校准

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 使用face_recognition进行摄像头实时给人脸打马赛 ...

  7. 逻辑回归模型混淆矩阵评价与ROC曲线最佳阈值的好处(附Accuracy,TPR,FPR计算函数)

    一.得到阈值在0.5和0.8下模型的混淆矩阵 y_prob=result.predict(X_test)#得到概率值y_predict1=pd.DataFrame(y_prob>0.5).ast ...

  8. Python机器视觉--OpenCV进阶(核心)--图像轮廓查找识别,绘制图像轮廓与图像轮廓的面积周长计算

    1.图像轮廓查找识别与绘制图像轮廓 1.1 什么是图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用. 轮廓的作用: 用于图形分析 物体的识别和检测 注意 ...

  9. 关于评价指标的理解(TPR,FPR,TAR,FAR,FRR,ERR)

    近期,一直在做人脸识别方面的研究,在阅读paper的时候,发现对一些指标认识不足,因此,从新学习认识算法的评价指标,非常感谢https://blog.csdn.net/liuweiyuxiang/ar ...

最新文章

  1. 献上程序员大学四年珍藏的30个宝藏网站,全部拿出来
  2. Ansible第一篇:基础
  3. 10个免费的javascript富文本编辑器(jQuery and non-jQuery)
  4. STM32:Flash擦除与读写操作(HAL库)
  5. Vijos P1696 数与连分数【连分数】
  6. 一文弄懂Numpy中ndarray的维度(dimension)/轴数(axis/axes)问题
  7. [POJ1463] Strategic game
  8. java get https_JAVA – 使用SSL证书和HTTPS的简单GET请求
  9. Secure DevOps!探真科技2022云原生安全产品发布会圆满落幕
  10. Miktex + WinEdit 实现LaTeX写论文
  11. [JavaScriptC#]收藏 备忘
  12. 机器学习笔记【二】逻辑回归与分类(2):感知机学习算法与逻辑回归的区别,牛顿方法
  13. 二分图最大权匹配【KM算法 BFS优化下的真正的O(N3)的KM算法】【KM算法模板】
  14. FL Studio 20.9水果编曲软件中文汉化补丁包
  15. 一个不错的控件网站-慧都控件网
  16. NodeJS 搭建图形识别功能
  17. codeblock的c语言编译,CodeBlocks无法编译的原因和解决办法
  18. 【matlab】雷达成像系列 之 BP(BackProjection,后向投影) 成像算法
  19. 有了这123个Python黑客工具,再也不用问女朋友要手机密码了
  20. 对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序

热门文章

  1. s6730堆叠_网络工程师进阶篇·堆叠
  2. Python3 遍历列表、字典和元组方式总结
  3. 如何选择聚合支付平台
  4. 论文查询:如何查询论文被其他哪些文献引用过?
  5. 【NLP】使用 BERT 和 PyTorch Lightning 进行多标签文本分类
  6. html5之role作用
  7. 174.127.195.210/bbs/index.php?,[漏洞exploit工具-mona系列4] mona实战系列
  8. VNC共享剪切板,打开远程复制粘贴功能
  9. 微信电脑备份速度慢解决方法(亲测有效)
  10. 如何学习一个新的计算机概念(协议等),如snmp? 上官网学习【官网集合】