活体检测 根据TPR、FPR绘制图像计算最优模型阈值
在活体检测中经常使用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绘制图像计算最优模型阈值相关推荐
- 人脸识别中的活体检测算法综述
其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 1. 什 ...
- 人脸识别中的活体检测算法
人脸识别中的活体检测算法综述 1. 什么是活体检测? 判断捕捉到的人脸是真实人脸,还是伪造的人脸攻击(如:彩色纸张打印人脸图,电子设备屏幕中的人脸数字图像 以及 面具 等) 2. 为什么需要活体检测? ...
- 模型评估指标-2-ROC与PR曲线对比,TPR/FPR/Precision关系,3种特殊的评估指标
导语:在进阶篇里面,将会讨论ROC和PR曲线的联系,在不平衡数据中的偏差问题,同时利用公式来说明TPR/FPR/Precision三者之间的关系,在第三部分结合业务场景将介绍了几个特殊指标,但是没有说 ...
- 计算机视觉子方向,计算机视觉方向简介 | 人脸识别中的活体检测算法综述
原标题:计算机视觉方向简介 | 人脸识别中的活体检测算法综述 本文转载自"SIGAI人工智能学习与实践平台"(ID:SIGAICN) 导言 1. 什么是活体检测? 判断捕捉到的人脸 ...
- 38、静默活体检测测试及ncnn、mnn部署
基本思想:因为最近需要搞个Android端的活体检测,github了一下,git到小视科技公司的一个开源项目,听了大佬的介绍,因此测试了一下,效果还可以,于是进行了模型转换和ncnn.mnn部署 本实 ...
- 使用face_recognition:摄像头实时给人脸打马赛克、疲劳检测、活体检测(张嘴检测)、计算两张人脸之间的相似度、人脸校准
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 使用face_recognition进行摄像头实时给人脸打马赛 ...
- 逻辑回归模型混淆矩阵评价与ROC曲线最佳阈值的好处(附Accuracy,TPR,FPR计算函数)
一.得到阈值在0.5和0.8下模型的混淆矩阵 y_prob=result.predict(X_test)#得到概率值y_predict1=pd.DataFrame(y_prob>0.5).ast ...
- Python机器视觉--OpenCV进阶(核心)--图像轮廓查找识别,绘制图像轮廓与图像轮廓的面积周长计算
1.图像轮廓查找识别与绘制图像轮廓 1.1 什么是图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用. 轮廓的作用: 用于图形分析 物体的识别和检测 注意 ...
- 关于评价指标的理解(TPR,FPR,TAR,FAR,FRR,ERR)
近期,一直在做人脸识别方面的研究,在阅读paper的时候,发现对一些指标认识不足,因此,从新学习认识算法的评价指标,非常感谢https://blog.csdn.net/liuweiyuxiang/ar ...
最新文章
- 献上程序员大学四年珍藏的30个宝藏网站,全部拿出来
- Ansible第一篇:基础
- 10个免费的javascript富文本编辑器(jQuery and non-jQuery)
- STM32:Flash擦除与读写操作(HAL库)
- Vijos P1696 数与连分数【连分数】
- 一文弄懂Numpy中ndarray的维度(dimension)/轴数(axis/axes)问题
- [POJ1463] Strategic game
- java get https_JAVA – 使用SSL证书和HTTPS的简单GET请求
- Secure DevOps!探真科技2022云原生安全产品发布会圆满落幕
- Miktex + WinEdit 实现LaTeX写论文
- [JavaScriptC#]收藏 备忘
- 机器学习笔记【二】逻辑回归与分类(2):感知机学习算法与逻辑回归的区别,牛顿方法
- 二分图最大权匹配【KM算法 BFS优化下的真正的O(N3)的KM算法】【KM算法模板】
- FL Studio 20.9水果编曲软件中文汉化补丁包
- 一个不错的控件网站-慧都控件网
- NodeJS 搭建图形识别功能
- codeblock的c语言编译,CodeBlocks无法编译的原因和解决办法
- 【matlab】雷达成像系列 之 BP(BackProjection,后向投影) 成像算法
- 有了这123个Python黑客工具,再也不用问女朋友要手机密码了
- 对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序
热门文章
- s6730堆叠_网络工程师进阶篇·堆叠
- Python3 遍历列表、字典和元组方式总结
- 如何选择聚合支付平台
- 论文查询:如何查询论文被其他哪些文献引用过?
- 【NLP】使用 BERT 和 PyTorch Lightning 进行多标签文本分类
- html5之role作用
- 174.127.195.210/bbs/index.php?,[漏洞exploit工具-mona系列4] mona实战系列
- VNC共享剪切板,打开远程复制粘贴功能
- 微信电脑备份速度慢解决方法(亲测有效)
- 如何学习一个新的计算机概念(协议等),如snmp? 上官网学习【官网集合】