自然语言处理当中评价指标汇总

自然语言处理当中评价指标很多,好多专用的术语,本篇旨在对常用的评价指标汇总,督促自己系统学习,大家当做参考不足之处请指出并做交流。

  • 文本分类评测指标如下:
    这里写图片描述
    P-R曲线的比较:
    这里写图片描述
    对于A和B曲线,如果需要比较,比较两个曲线的轮廓的面积.
  • 宏观和微观评价指标
    这里写图片描述
  • ROC与AUC曲线
    这里写图片描述
    这里写图片描述
    这里写图片描述
  • 机器翻译当中的评价指标BLEU:
    对机器翻译作人工评价时会考量到翻译的许多方面:如机器的充分性、忠实度和流畅度。机器翻译同专业人工翻译越接近越好,为了评价机器翻译质量,他们需要使用某种“数值型度量指标”来衡量机器译文同人工翻译的参考译文的相似程度.BLEU方法便是对待评价和参考译文的“n-单元片段(n-gram)”进行比较,并计算出匹配片段的个数,这些匹配片段与他们在文字中存在的位置无关,匹配片段数越多越好。在BLEU方法中,首先逐个句子计算“n-单元片段”的匹配个数,然后讲经过剪切的“n-单元片段”匹配数加起来求和,在除以待评测译文中“n-单元片段”个数。
    参考文献:a method for automatic evaluation of machine translation.
  • 偏差与方差
    这里写图片描述
    这里写图片描述
  • 显著性检验
    A/B测试试验原理来看,它是统计学上假设检验(显著性检验)的一种形式。
    A/B 测试是一种对比试验,在试验过程中,我们从总体中抽取一些样本进行数据统计,进而得出对总体参数的一个评估。我们能从试验数据中得出有效结论的科学基础是基于统计学原理。
    既然涉及统计学了,我们先来了解一些基础概念,这些会对我们理解这些内容有很大帮助。
    在现在的 Appadhoc 平台做测试时,我们通过对试验数据的解读来确认哪个版本的效果更好;整个过程就其实相当于在做一个对比试验,通过综合对比原始版和试验版本的样本数据,从而判断这两个版本存在差异或者相同的结论。
    首先,在试验过程中存在2个假设,这两个假设的关系我们需要先搞清楚。
    原假设:我们希望通过试验结果推翻的假设
    备择假设:我们希望通过试验结果验证的假设

我们在做A/B测试时,利用试验样本数据判断备择假设是否成立。逻辑上运用反证法,统计上依据小概率思想。原假设和备择假设是一个完备事件组,而且相互对立。在一项假设检验中,原假设和备择假设必有一个成立,而且如果其中一个不成立则必须无条件接受另一个。在A/B测试过程中,因为我们试验的目的是通过反证法证明测试版本和对照版本有明显的不同(提升),所以在这个场景中,原假设就是原始版本和试验版本无差异,而备择假设就是这两个版本存在差异;这也很好理解,因为我们肯定不希望做了半天测试,得到的结果是两个版本一点差异都没有吧?

现在中心思想明确了,我们的做A/B测试的试验的目的就是推翻2个版本无差异的原假设,验证他们有差异的备择假设。

既然做试验时,我们通过样本数据去验证我们的观点,那肯定会有犯错的概率,为了得到科学的试验结果,我们则需要尽可能减少这些可能导致我们队试验结果做出误判的概率。
第一类错误:原假设为真时拒绝了原假设
首先我们容易犯的就是第一类错误,就是原假设为真时拒绝了原假设,说白了就是过来就是2个版本无差异时候,我们错误 的认为他们有差异(从统计学角度讲也叫弃真错误)这个错误的后果非常严重,所以我们把这它的标准设一个值0.05, 它其实就是一个概率, 这个概率就是我们容许自己出错的概率。

这个就是5%就是在统计学里称作 α , 它代表着我们这个试验结果的置信水平。与这个置信水平相对应的就是置信区间的置信度,由 1- α 得出,所以你在这里看到如果 α 是0.05,那置信度就是0.95,也就是说,如果我们容许自己出错的几率是5%,那我们将得到一个有 95% 的可能性包含真实的总体均值区间范围,如果你把这个 α 调整成0.07,那你的置信区间的置信度将变成93%。
由于 α 是我们自己设置的,那么当然需要通过数据去验证一下,这个通过计算出来的值就是 p-value , p 的定义就是,如果两个版本无差异的前提下,我们得到这个试验数据的概率。

p-value 是计算出的, α 是我们自己设定的。
这里写图片描述
p <= α 则意味着我们的测试得到了统计显著的结果, 因为只有我们得到的这个 p 的概率越小,我就可以越有信心的地根据小概率事件不会发生的判断依据,从而推翻原假设,接受备择假设。(假设 p 值0.04 那么意味着如果原假设为真,我们通过抽样得到这样一个样本数据的可能性只有 4%。则我可以认为此次试验发生了小概率事件。根据小概率事件不会发生的判断依据,我们可以反证认为原假设不成立,接受备择假设的事实。)
p 值核算涉及样本均值,样本数量,和标准差。
- 第二类错误:原假设为假时接受了原假设

减少了第一类错误后,还有另一种错误会影响我们的决断,

那就是原假设为假时接受了原假设,说白了就是2个版本有差异时候,我们错误 的认为他们没有差异 ,这个错误的概率在统计学角度也称为取伪错误,记为 β ),这个概率可以相对大一些,业界大约定俗成的一个标准就是10%和20%的概率。

和显著性水平一样,为了避免我们犯第二类错误,我们需要通核算 β 从而计算出另一个参数来给我们参考,就是统计功效,和核算置信区间的置信度类似,它的思路是 1-β 来得出 (统计功效 power = 1 – β )

统计功效是指版本差异(效果)为某个指定值时,通过显著性检验能正确地把差异检验出来的概率。说白了就是,假设两个版本的确存在差异,我们能够正确拒绝原假设,获得统计显著性结果(95%置信区间中数据)的概率。

统计功效的核算涉及样本数量,方差, α 、以及最小变化度或者置信区间下限。

由此可见,只有我们把第一类错误控制在5%以内,第二类错误控制在10%-20%左右,我们才可以说得出具有参考价值的出的试验数据。

换句话说,我们在做A/B测试时,试验结果达到95%的置信度,以及80%-90%的统计功效时,它对我们来说才是有意义、可以作为决策参考的。

本文作者:吆喝科技 CSM 团队傅礼阳,如果你对这篇文章感兴趣,或者还有不理解的问题,可以添加作者微信讨论:fly415。

吆喝科技:国内唯一同时支持前端(Web/H5、iOS、Android)及后端(Node.js、PHP、Java 等) A/B 测试 服务的专业 SaaS 平台。支持线上灰度发布、多维度数据统计分析、科学的流量分配系统、一键发布新版本无需应用市场审核、定向测试。
用数据帮助用户优化产品,提升转化、留存和你想要的一切。 AppAdhoc 用数据验证最佳方案,提高产品设计、研发、运营和营销效率,降低产品决策风险。

参考文献:周志华-机器学习

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 导入库 import pandas as pd import numpy as np import matplotlib.pyplot as plt df = pd.read_excel('雷达图.xlsx') # 读取数据表 df = df.set_index('性能评价指标') # 将数据汇总的“性能评价指标”列设置为行索引 df = df.T # 转置数据表格 df.index.name = '品牌' # 将转置后的数据行索引那一列的名称修改为“品牌” # 自定义一个函数用于制作雷达图 def plot_radar(data, feature): # 设置字体格式 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 指定各个品牌要显示的性能评价指标的名称 cols = ['动力性', '燃油经济性', '制动性', '操控稳定性', '行驶平顺性', '通过性', '安全性', '环保性'] # 为每个品牌设置图表的显示颜色 colors = ['green', 'blue', 'red', 'yellow'] # 根据要显示的指标个数对圆形进行等分 angles = np.linspace(0.1 * np.pi, 2.1 * np.pi, len(cols), endpoint=False) # 连接刻度线数据 angles = np.concatenate((angles, [angles[0]])) fig = plt.figure(figsize=(8, 8)) # 设置显示图表的窗口大小 ax = fig.add_subplot(111, polar=True) # 设置图表在窗口的显示位置,并设置坐标轴为极坐标体系 for i, c in enumerate(feature): stats = data.loc[c] # 获取品牌对应的指标数据 stats = np.concatenate((stats, [stats[0]])) # 连接品牌的指标数据 # 制作雷达图 ax.plot(angles, stats, '-', linewidth=6, c=colors[i], label='%s' % (c)) ax.fill(angles, stats, color=colors[i], alpha=0.25) # 为雷达图填充颜色 ax.legend() # 为雷达图添加图例 ax.set_yticklabels([]) # 隐藏坐标轴数据 ax.set_thetagrids(angles * 180 / np.pi, cols, fontsize=16) # 添加并设置数据标签 plt.show() # 显示制作的雷达图 return fig # 调用自定义函数制作雷达图 fig = plot_radar(df, ['A品牌']) # 查看单个品牌的性能评价指标 fig = plot_radar(df, ['A品牌', 'B品牌', 'C品牌', 'D品牌'])
06-06

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值