Wetts's blog

Stay Hungry, Stay Foolish.

0%

贝叶斯误差.md

贝叶斯误差:理论最低的错误率,通常用“人类水平错误率”来估计贝叶斯误差。相当于是天花板。


转自:https://www.zhihu.com/question/263546637

问题

正在学习机器学习,不是特别理解其中的贝叶斯误差的概念,书上说是从预先知道的分布预测而出现的c误差,既然已经预先知道分布了,那么为什么还有误差呢?

解答

Wiki 定义:贝叶斯误差(bayes error rate)是指在现有特征集上,任意可以基于特征输入进行随机输出的分类器所能达到最小误差。也可以叫做最小误差。

先直接回答题主的疑问:“书上说是从预先知道的分布预测而出现的c误差,既然已经预先知道分布了,那么为什么还有误差呢?”

回答:分布是真实的,但预测的输出只能是一个值,所以会有误差。例如,假设真实世界中90%长头发的人为女性,10%为男性(这是已知的真实分布);此时已知一个人头发长,预测该同学性别。由于只能预测男/女。此时即使你知道真实分布,预测为女,也会有10%的误差。这就是贝叶斯误差。

===========================

下面详细说一下我的理解,贝叶斯误差的定义有两个关键点:

  1. 给定特征集后的最小误差:即可以认为我们的训练集无限大且已经按真实分布穷举了所有可能的特征组合后,任何分类器所能达到的误差下限。产生贝叶斯误差的本质原因是特征集不足以推理出准确预测值,否则贝叶斯误差为0。
  2. 概率特性:“最小误差”是限定在概率随机性条件下的 (– 如果是开了实例级别的“天眼”的最小误差,显然无论任何情形下最小误差都是 0,这个概念将没有任何意义。贝叶斯误差只能开概率级别的“天眼”)。即:
    1. 如果场景是给定特征输入,输出值是唯一的,则贝叶斯误差为 0。例如特征是人的净高和鞋底厚度,回归目标是人的头顶距离地面高度。那贝叶斯误差为 0。在训练集准确的情况下,线性回归也可以达到相同误差。
    2. 反之,如果输出值是有一定随机性的,贝叶斯误差是此时选概率最大输出作为输出值所能达到的误差。比如,特征为头发长短,目标值为男、女分类 label。假设在长发下,真实世界中女性概率 90%,10% 男性。反之女性 10%,男性 90%。那么贝叶斯概率误差即为认定长发为女,短发为男的误差。显然其贝叶斯误差为 10%。

题主的疑问,比较重要的是理解分布是真实的,但输出只能是一个值,所以会有误差。如果输出也可以是分布,那就没有误差了。

贝叶斯误差的作用:直观上可以这么理解,贝叶斯误差是在给定特征集的情况下,假设数据无限(且准确),依靠统计所能得到的最小误差。它是我们通过增加数据集/优化数据集分布/提升模型学习能力/防止过拟合等等措施后所能达到的误差下限。如果当前算法已经能达到接近贝叶斯误差的误差,则在不动特征的前提下(比如 DNN 输入特征为原始文本/像素时,输入特征就动不了)我们已经没有继续优化的意义了。

– 然而,事实上,贝叶斯误差无法求得(因为求得的前提是你知道真实分布,你知道真实分布还做什么机器学习呀)。目前就我知道的,业界并不会真正使用该指标,该指标更多的还是出现在学术探讨中。