《机器学习:算法视角(原书第2版)》 —2.3 数据与概率的转换

举报
华章计算机 发表于 2019/12/21 13:15:03 2019/12/21
【摘要】 本节书摘来自华章计算机《机器学习:算法视角(原书第2版)》 一书中第2章,第2.3.1节,作者是[新西兰] 史蒂芬·马斯兰(Stephen Marsland),高 阳 商 琳 等译。

2.3 数据与概率的转换

 图2-10 二分类中特征值(x)与其概率的直方图 图2-11 以像素形式出现的字母“a”和“b”图2-10显示了某些特征x对两个类C1和C2的度量值。类C2中具有的特征x值比类C1更大,但是这两个类之间也存在一些重叠。在范围的极端情况下,正确的类很容易预测,但对于中间范围的预测还不清楚。假设我们试图根据字母的高度对字母“a”和“b”进行分类(如图2-11所示)。大多数人写的“a”比“b”小,但不是每个人。然而在这个例子中,我们有一个秘密武器。我们知道在英文文本中字母“a”比字母“b”更常见(回想之前介绍的不平衡数据集)。如果我们在正常写作中看到一个像“a”或“b”的字母,那么它有75%的可能性是“a”。我们使用先验知识来估计这个字母是“a”的概率:在这个例子中,P(C1)=0.75,P(C2)=0.25。如果我们根本无法看到这个字母,只是必须对其进行分类,那么如果我们每次都选择“a”,则有75%的概率是正确的。

然而,若要求进行分类,我们也会得到特征x的值。如果x的值是有用的,那么只使用P(C1)的值而忽略x的值将是非常愚蠢的!实际上,我们给出了一组x值的训练集和每个样本所属的类。这让我们可以计算出P(C1)的值(我们只计算在所有类中C1的个数并除以样本的总数),还有另一个有用的度量:给定x的值X下C1的条件概率(conditional probability):P(C1X)。条件概率告诉我们如果x的值是X,则该类是C1的可能性。因此在图2-10中,对于小的X值,P(C1X)的值将大于对于大的X值的概率值。显然,这正是我们想要计算以进行分类的内容。问题是如何获得这个条件概率,因为我们不能直接从直方图中读取它。

我们需要做的第一件事就是量化特征x,这意味着将它放入一组离散的值{X}中,例如直方图中的方框。这正是图2-10中绘制的内容。现在,如果我们有两个类的大量样例,以及它们度量结果所属的直方图,则可以计算P(Ci,Xj),这是联合概率(joint probability),并告诉我们度量值Ci和直方图中Xj同时出现的概率。我们通过查看直方图中的Xj,计算其中属于Ci类的样例数量,并除以样例的总数(任何类的)来完成此操作。

我们也可以定义P(XjCi),这是一个不同的条件概率,并且告诉我们(在训练集中)样例是Ci类的成员的情况下,度量值是Xj出现的次数。同样,我们可以通过计算直方图箱Xj中的类Ci的样例数量并且除以该类的样例数量(在任何箱中)来获得该信息。希望你曾在某阶段的统计学课程中学过这些知识;如果没有,并且你没有读懂上述内容,那就抓住任何介绍概率的书进行学习。

因此,我们现在从训练数据中得出两个结果:联合概率P(Ci,Xj)和条件概率P(XjCi)。由于我们实际上想要计算的是P(CiXj),因此需要知道如何将这些事物联系在一起。正如你们中的一些人可能已经知道的那样,答案是贝叶斯法则(Bayes’rule),这就是我们现在需要的法则。联合概率和条件概率之间存在联系:P(Ci,Xj)=P(XjCi)P(Ci)(2.10)或者等价于:P(Ci,Xj)=P(CiXj)P(Xj)(2.11)显然,这两个方程的右边必须相等,因为它们都等于P(Ci,Xj),所以我们可以写一个除式:P(CiXj)=P(XjCi)P(Ci)P(Xj)(2.12)这就是贝叶斯法则。如果你还不知道它,请学习并了解——它是机器学习中最重要的等式。它将后验概率P(CiXj)与先验概率P(Ci)和类条件概率P(XjCi)联系起来。其中,分母用于形式化所有事物,因此概率总和为1。你可能不清楚如何计算该项。但是,如果我们注意到任何对象Xk必须属于某个类Ci,那么我们可以在所有类上间隔化来计算:P(Xk)=∑iP(XkCi)P(Ci)(2.13)贝叶斯法则如此重要的原因在于,它让我们通过计算更容易计算的事物来获得后验概率——这实际是我们想要的。我们可以通过查看每个类在训练集中出现的频率来估计先验概率,并且可以从训练集的特征值的直方图中获得类条件概率。我们可以使用后验概率(图2-12)通过选择类Ci将每个新对象分配给其中一个类:P(Cix)>P(Cjx) i≠j(2.14) 图2-12 特征x的两个类C1和C2的后验概率其中x是一个特征值向量而不是一个特征。这被称为最大后验(maximum a posteriori)或MAP假设,它为我们提供了一种选择哪一类作为输出的方法。问题是这是否是正确的做法。在统计学和机器学习文献中已经有大量研究在讨论数据正确分类的问题,因此我们将略过它。

MAP问题是给出训练数据中最可能的类是什么?假设存在三种可能的输出类,并且对于特定输入,类的后验概率是P(C1x)=0.35,P(C2x)=0.45,P(C3x)=0.2。因此,MAP假设告诉我们这个输入是在类C2中,因为它是具有最高后验概率的类。现在假设,基于数据所在的类,我们想要做一些事情。 如果类是C1或C3,那么采取动作1,如果是C2,那么采取动作2。例如,输入是血液检验的结果,三个类是不同的可能疾病,并且输出是否用特定抗生素治疗。MAP方法告诉我们输出是C2,所以我们不会治疗这种疾病。它不属于类C2的概率是多少时,才应该用抗生素治疗?应该是1-P(C2)=0.55。所以MAP预测似乎是错误的:我们应该用抗生素治疗,因为总体来说它更有可能。我们将所有类的最终结果考虑在内的这种方法称为贝叶斯最优分类(Bayes’Optimal Classification)。它最大限度地减少了错误分类的可能性,而不是最大化后验概率。

2.3.1 最小化风险

在医学示例中,我们刚刚看到基于最小化误分类概率进行分类是有意义的。 我们还可以考虑误分类中涉及的风险。将健康的某人误认为不健康的风险通常比其他方式小,但不一定总是:很多治疗方法都有令人讨厌的副作用,如果你没有这种病,则不会遭受这份痛苦。在这种情况下,我们可以创建一个损失矩阵,该矩阵指定类Ci的示例被分为类Cj所涉及的风险。这看起来像我们在2.2节中看到的混淆矩阵,除了损失矩阵在主对角线上总是包含零,因为分类正确永远不会有损失的!一旦有了损失矩阵,我们只需通过将每个案例乘以相关的损失数来使分类器最小化风险。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。