上一篇博文中讨论了两种常用的性能度量查准率(precision)查全率(recall,也叫召回率)对应的P-R图与真正例率(TPR),假正例率(FPR)对应的ROC图。详情请看https://blog.csdn.net/qq_18888869/article/details/84848689。今天介绍另一种常用的人的度量方法FAR,FRR,此方法在识别身份,人脸识别等方面运用较多。

1.概念

,错误接受率为不该接受的样本里你接受的比例

.错误拒绝率为不该拒绝的样本里你拒绝的比例

从这里对比TPR与FPR,可以发现,。(1)

等错误率 (EER-Equal Error Rate) 
取一组0到1之间的等差数列(yuzh),分别作为识别模型的判别界限,既坐标x轴,画出FFR和FAR的坐标图,交点就是EER值(FAR与FRR相等的点)。

2.实现

首先根据前边的代码得到fpr,tpr,根据公式(1)计算相对应的far,frr,最后画出far-frr图。

fpr, tpr, thresholds = metrics.roc_curve(labels, scores, pos_label=1,drop_intermediate = False)plt.figure()
plt.plot(1-tpr, fpr, color = 'green', marker = 'o',label = 'ROC')
plt.legend()
plt.xlim([0,1])
plt.ylim([0,1])
plt.xlabel('frr')
plt.ylabel('far')
plt.title('ROC')

如图:

寻找eer:

plt.figure()
plt.plot(1-tpr, thresholds,marker = '*',label = 'far')
plt.plot(fpr, thresholds, marker = 'o',label = 'fpr')
plt.legend()
plt.xlim([0,1])
plt.ylim([0,1])
plt.xlabel('thresh')
plt.ylabel('far/fpr')
plt.title(' find eer')

3.介绍一种求出EER近似值的方法

先介绍几个scipy库中的函数。

class scipy.interpolate.interp1d(xykind='linear'axis=-1copy=Truebounds_error=Nonefill_value=nanassume_sorted=False):插值函数

x,y是arrays 值近似函数。返回一个函数,调用方法使用插值寻找新点的值。

>>> import matplotlib.pyplot as plt
>>> from scipy import interpolate
>>> x = np.arange(0, 10)
>>> y = np.exp(-x/3.0)
>>> f = interpolate.interp1d(x, y)
>>> xnew = np.arange(0, 9, 0.1)
>>> ynew = f(xnew)   # use interpolation function returned by `interp1d`
>>> plt.plot(x, y, 'o', xnew, ynew, '-')
>>> plt.show()

scipy.optimize.brentq(fabargs=()xtol=2e-12rtol=8.881784197001252e-16maxiter=100full_output=Falsedisp=True):作用是使用Brent方法在括号间隔内找到一个函数的根

f:函数,a,b间隔两端点。

>>> def f(x):
...     return (x**2 - 1)
>>> root = optimize.brentq(f, -2, 0)
>>> root
-1.0

以下是求EER值的代码

def func(x):return 1. - x - interp1d(fpr, tpr)(x) # 1-roc-x,减去x是为了把x,y相等的点转化为y=0,然后通过求root的方法求出x_dis = numpy.arange(0,1, 0.02)
y_dis = func(x_dis)
plt.figure()
plt.plot(x_dis,y_dis,label = 'f')
plt.legend()
plt.xlabel('x v')
plt.ylabel('y v')
root = brentq(f, 0,1)
print('root', root)

func的作用是将far,frr相等的地方转化为y=0,那么就可以用求根的方法来求出这个值。

机器学习性能度量(2):错误接受率 (FAR), 错误拒绝率(FRR),EER计算方法,python实现相关推荐

  1. 机器学习性能度量(1):P-R曲线与ROC曲线,python sklearn实现

    最近做实验要用到性能度量的东西,之前学习过现在重新学习并且实现一下. 衡量模型泛化能力的评价标准,这就是性能度量.性能度量反应了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判 ...

  2. 错误接受率 (FAR), 错误拒绝率(FRR), 等错误率(EER)代码简易实现

    一.FAR FRR 计算方式一: 1.错误接受率 (FAR-False Acceptance Rate)       FAR = nontarget_is_target / ( target_is_t ...

  3. 错误接受率 (FAR), 错误拒绝率(FRR), 等错误率(EER)

    不管是声纹识别和图像识别,以及指纹识别,在评价模型时总要用到这三个指标.下边说下这三个指标的含义. 1.错误接受率 (FAR-False Acceptance Rate) FAR = nontarge ...

  4. 机器学习之性能度量指标——决定系数R^2、PR曲线、ROC曲线、AUC值、以及准确率、查全率、召回率、f1_score

    一.线性回归的决定系数(也称为判定系数,拟合优度) 相关系数是R哈~~~就是决定系数的开方! 正如题所说决定系数是来衡量回归的好坏,换句话说就是回归拟合的曲线它的拟合优度!也就是得分啦~~ 决定系数它 ...

  5. 机器学习中常见性能度量汇总

    前言 如果你对这篇文章感兴趣,可以点击「[访客必读 - 指引页]一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接. 一.回归 在回归任务上,目前最常用的性能度量方式是均方误差 (Mean S ...

  6. 机器学习之性能度量指标

    机器学习的模型性能度量指标 在机器学习中,衡量,评估和选择一个模型好坏是通过一些常见指标实现的,称之为性能指标(Metrics). 对于一个二分类问题,我们首先给出如下基本指标基于这些指标可以推导出其 ...

  7. 深入理解机器学习——机器学习模型的性能度量

    分类目录:<深入理解机器学习>总目录 对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(Performance Measure ...

  8. 机器学习中的三对性能度量参数

    文章目录 1 分类结果混淆矩阵 2 错误率和精度 3 查准率P和查全率R 4 真正例率TPR和假正例率FPR 1 分类结果混淆矩阵 2 错误率和精度 错误率:分类错误的样本数占样本总数的比例 精度:分 ...

  9. 【机器学习】机器学习实践中的 7 种常见错误

    编译:伯乐在线 - yixingqingkong,英文:Cheng-Tao Chu 编注:本文作者是 Codecademy 的分析主管 Cheng-Tao Chu,其专长是数据挖掘和机器学习,之前在 ...

最新文章

  1. kubernetes之kubedns部署
  2. javascript之原型
  3. 在vs2010中使用nuget安装EF5报错解决方案
  4. SAP Spartacus 电商云 UI Shipping Method 在单元测试环境下没有显示的问题
  5. window无法对计算机进行,电脑按Win+E快捷键无法打开“计算机”如何解决
  6. C# WebBrowser自动填表与提交
  7. LeetCode 418. 屏幕可显示句子的数量(DP)*
  8. 安装composer以及laravel框架
  9. Python 3. 里filter与generator expression的区别
  10. 抖音python上的代码_抖音代码舞python实例代码
  11. android菜单对话框文字,Android 对话框、信息提示和菜单
  12. WIn10 64位安装windows Mobile 设备中心不能启动或自动退出
  13. 动态图片怎么制作 html,怎么制作动态图片
  14. 【语音增强论文解读 03】TCNN: TEMPORAL CONVOLUTIONAL NEURAL NETWORK FOR REAL-TIME SPEECHENHANCEMENT IN THE TIME
  15. php坏处,cpu超频有什么坏处
  16. el-tree对已知节点设置disable
  17. 乘风破浪、厚积薄发国产服务器软件: LinWin Http Server
  18. SQL Server 空间管理——表空间
  19. 名字中间一条线怎么弄_网名怎么加横线啊 网名中间加一条横线
  20. linux版本kettle 中文乱码,kettle工具同步数据乱码-Linux下乱码问题二

热门文章

  1. String 类详解
  2. Handbook of Constraints Programming——Chapter 22 Constraint-Based Scheduling and Planning
  3. WPF对决Silverlight:为项目选择最佳技术
  4. 外部引用CSS中 link与@import的区别
  5. MOCTF-Web-登录就对了
  6. qs.parse和qs.stringify
  7. vue给组件传递不同的值
  8. 使用axios上传照片
  9. 三维重建2: 地图构建-三角测量
  10. 图像的全局特征--HOG特征、DPM特征