商用机器学习:数据科学实践
上QQ阅读APP看书,第一时间看更新

1.5 贝叶斯定理

在机器学习中,我们有时候会对估计结果的可能性感兴趣。这个结果可能是一笔消费者贷款违约,或者一笔被证实的欺诈性交易。在通常情况下,一个结果的发生会有一个初始概率。当收到新的数据后,这个概率会更新成为基于这个新数据的条件概率。贝叶斯定理常常用于计算条件概率。

贝叶斯定理是托马斯·贝叶斯在1760年提出的:假设P(X)是事件X可能发生的概率,P(Y|X)是在事件X发生的条件下,事件Y发生的概率。贝叶斯定理指出:

贝叶斯定理的证明过程非常直观,从条件概率的定义出发:

以及:

将式(1-4)中的P(X,Y)替换成P(X|Y)P(Y),便得到了贝叶斯定理的公式。

举个贝叶斯定理的实际应用例子。假定银行现在需要识别哪些消费者有不正常交易的记录,通过历史数据已知90%的不正常交易记录金额都超过10万美元,且发生在下午4点到5点之间。在总交易记录中,不正常交易数量占比为1%,发生在下午4点到5点之间的超过10万美元的交易记录占3%。

根据上述条件,我们定义:

·X:发生在下午4点到5点之间,且交易金额超过10万美元;

·Y:不正常交易。

已知P(Y)=0.01,P(X|Y)=0.9,P(X)=0.03,根据贝叶斯定理:

在随机抽取一部分交易记录时,可能抽取到不正常交易的概率仅为1%。但是当我们加上“发生在下午4点到5点之间,且交易金额超过10万美元”这个限制条件时,通过贝叶斯定理计算出的概率提升为30%。该定理的作用显而易见。如果这家银行拥有网上交易系统,则可以将系统设置为禁止下午4点到5点之间超过10万美元的交易行为,并对符合这些条件的交易进行进一步核查。

贝叶斯定理有效地允许我们在计算概率的时候,将条件约束进行反转,这样所获得的结果往往与我们主观的认知有所不同。假设一种疾病的确诊准确度高达99%(也就是说,如果一个人在有病的情况下去做检测,那么检测结果有99%的概率为阳性,即检测出这个人有病)。我们同样假设,当一个人在没病的情况下去做检测时,检测结果有99%的概率是阴性(即没有检测出这个人有病)。在这里,假设这种疾病非常罕见,即个体患病的(无条件)概率仅有万分之一。如果某个人已经被检测为阳性,那么此人确实被感染的概率是多少?

第一个想到的答案是99%(毕竟有99%的准确率)。然而,却混淆了条件概率结束。假设X代表测试结果为阳性,Y代表测试者被感染,我们需要计算的概率是P(Y|X),而我们已知的是P(X|Y)=0.99,P(Y)=0.000 1;另外,假设代表测试结果为阴性,代表此人没有被感染,且已知:

以及:

因为无论是X还是,总有一个为真,所以,我们知道P(|)+P(X|)=1,由此得出:

综上,测试结果为阳性的可能性为:

套用贝叶斯定理式(1-3),得出:

从这里可以看出来,如果你得到一个阳性的检测结果,你得该病的概率少于1%。检测结果相对于无条件概率0.000 1而言增加了98倍,但依然很低。这里最关键的是,“准确率”被定义为在一个人患病的条件下获得正确的诊断结果的条件概率,而并非相反的条件。

我们将在第4章中以贝叶斯定理为基础,向各位读者介绍朴素贝叶斯分类器。

小结

机器学习是涉及从大数据中进行学习的人工智能的一个分支。它包括开发算法来进行预测、数据聚类或与环境以最佳交互的方式进行序贯决策。

传统的统计分析方法首先是建立一个假设(在不参考数据的情况下),然后再对假设进行验证。但机器学习不同,它不设置任何假设前提,模型可以整体从数据中衍生出来。

验证和测试是机器学习中非常重要的部分。运用机器学习建立的模型必须在样本外进行测试。一个过于复杂的模型可能会导致对训练集的过度拟合,从而不能很好地泛化到新的数据集,而一个过于简单的模型可能无法捕获数据的重要特性。因此,数据集需要被拆分为三组:训练集用于建立备选模型,验证集用于检验模型对于数据的通用性,测试集被放在最后,用于选定模型准确性的最后检测。

不能忽略的一点是,在运用机器学习算法之前,必须要先进行数据清洗。数据按照性质可分为数值型和分类型两种,不论哪一种都可能存在数据记录格式不一致、数据无效等问题。同时对于数据,我们还需要检查重复性问题,以及可能由此导致的偏差。对于很明显因为录入失误导致的异常值,我们要将其剔除,最后我们需要以合适的方法处理缺失数据,以免结果出现偏差。

贝叶斯定理有时被用于量化一些不确定性,这是一种逆转条件概率的方法。假设我们已知事件Y发生的概率,并能够观测到另外一个相关的事件X的发生。又假设根据经验我们知道在事件Y发生的条件下事件X发生的概率,那么贝叶斯定理可以让我们计算在事件X发生的条件下事件Y发生的概率。

正如我们在本章中提到的,机器学习有别于传统统计学,有其自身的术语体系。在本章最后,我们做一下总结。特征是我们目前已有的观测数据,目标是我们想要对其进行预测的变量,标签是对目标的观测结果。监督学习是一种机器学习方法,我们使用相关特征和目标的数据来预测新数据的目标。无监督学习则是通过已有数据理解其变化规律(因为没有预测目标,所以在数据中也没有标签),半监督学习包括从部分标记的数据(提供目标值)和部分未标记的数据(不提供目标值)对目标进行预测。最后,强化学习关注于对序贯决策生成算法,使决策者可以与不断变化的环境进行交互。对于其他机器学习理论,我们将在本书后续章节中继续介绍。

练习题

1.机器学习和人工智能的区别有哪些?

2.请列举两种监督学习的预测模型。

3.无监督学习适用于什么场景?

4.强化学习适用于什么场景?

5.半监督学习适用于什么场景?

6.如何判断机器学习模型结果是否存在过度拟合的情况?

7.请阐述验证集和测试集的作用。

8.什么是分类型数据?

9.请列举五种不同的数据清洗方式。

10.“贝叶斯定理可以对条件概率来求逆(invert the conditionality)”,如何理解这句话的含义?

作业题

1.请将三次多项式和四次多项式应用于Salary vs.Age数据中(第1.3节的案例),效果如何?请计算出训练集和测试集在两种模型中的误差的标准差。

2.假设有25%的邮件为垃圾邮件,且40%的垃圾邮件中包含了一个特殊词。在所有邮件中仅有12.5%包含这个特殊词。如果一封邮件包含该特殊词,则该邮件是垃圾邮件的概率是多少?