大数据分析笔记 - 朴素贝叶斯
定义
朴素贝叶斯是一种基于贝叶斯定理(Bayes’ theorem)的概率分类方法(probabilistic classification method)。朴素贝叶斯分类器假设一个类的特定特征的存在和其他特征的存在与否是无关的。(条件独立假设 conditional independence assumption)
一个合理的分类会认为一个
球形、黄色且重量小于 60 克的对象可能是网球。即使这些特征相互依赖或者依赖于其他特征的存在,朴素贝叶斯分类器也认为所有这些属性独立地贡献了“该对象是一个网球”的概率。
输出包括了类别标签(class label)及其相应的概率分数(probability score)。
应用
- 贝叶斯垃圾邮件过滤
- 欺诈检测 (如汽车保险领域对司机的评级)
连续变量离散化 (Discretization of continuous variable)
连续变量(比如重量)能够按照间隔来分组,从而被转换成一个分类变量。比如对于"收入(income)"这样的属性,可以转换为以下分类变量:
- 低收入:income < $10,000
- 工薪阶级:$10,000 ≤ income < $50,000
- 中产阶级:$50,000 ≤ income < $1000,000
- 高产阶级:income ≥ $1,000,000
贝叶斯定理 (Bayes’ Theorem)
在事件A已经发生的情况下,事件C发生的条件概率用P(C|A)表示,如下图
C是类标签 𝐶 ∈ {𝑐1, 𝑐2, … , 𝑐}
A是观察到的属性 𝐴 ∈ {𝑎1, 𝑎2, … , 𝑎𝑚}
贝叶斯定理的一种更通用的形式(more practical form)是给一个具有多个属性A = {a1, a2, …, am}的对象分配分类标签,使得标签对应P(ci | A)的最大值,如下图。
朴素贝叶斯分类器 (Naive Bayes Classifier)
经过两种简化(simplifications),贝叶斯定理能被扩展为朴素贝叶斯分类器。
- 第一种简化就是使用条件独立性假设(Conditional independence assumption)。给定一个类标签ci, 每个属性是条件独立于其他属性的。
这个朴素假设简化了P(a1, a2, …, am | ci) 的计算。 - 第二种假设就是忽略分母 (denominator) P(a1, a2, …, am)。因为P(a1, a2, …, am)出现在所有i的P(ci | A)的分母里,移除分母对于相对概率值(relative probability score)没有影响。
使用这两种简化手法之后,分类器变成了:
数学符号表示了LHS,P(ci | A) 和 RHS 直接成比例。
为了建立一个朴素贝叶斯分类器,需要知道从训练集中计算出来的统计数字。
- 对于所有类别的 P(ci)
- 给定每个类标 ci 的情况下,每个属性aj的条件概率,即P(aj | ci)
比如,对于示例训练集来说,P(ci):
对于每个属性和其可能值,计算给定ci下的条件概率,P(aj | ci):
在训练完分类器并且计算出所有需要的统计数字之后,朴素贝叶斯分类器对测试集做测试。对于测试集中的每条记录,朴素贝叶斯分类器分配了最大化以下公式的标签ci。
例子:
因为 P(subscribed= yes|A) > P(subscribed=no|A),所以表中的客户被赋予标签 subscribed = yes。也就是说,客户被认为很可能签约凭证式存款。
可能问题
数据下溢 (numerical underflow)
当被分析的问题包含大量属性或者属性由很多层级构成的时候,这些值可能都非常小(接近于0),从而导致结果的差异更小。这是由几个接近于0的概率值相乘而引起的。
解决方案:
计算积的对数,这相当于这些概率的对数总和。
罕见事件 (rare events)
如果一个属性值没有在训练集中的类标签出现过,那么相应的P{aj | ci}将等于0。当这种情况出现,无论一些条件概率的值有多大,所有的P(aj | ci)相乘之后,P(ci | A) 将会立即变成0。
解决方案:
平滑技术: 为没有包含在数据集中的小概率事件赋一个很小的非0概率值。同时,平滑技术也解决了可能发生的对0取对数的问题。
拉普拉斯平滑 (Laplace smoothing): 该技术假装看到每个结果的次数都比实际多一次。
拉普拉斯平滑方式的一个问题是它可能会给不可见事件太高的概率,为了解决这个问题, 拉普拉斯平滑可以使用ε而不是1, ε ∈[0,1]。
分类器优点
- 容易实现。
- 高效地处理多维数据(high-dimensional data)。
- 朴素贝叶斯对过度拟合更有抵抗力,特别是在有平滑技术时。
- 能够处理缺失值(missing values)。
分类器缺点
- 朴素贝叶斯需要假定数据变量之间是条件独立的。因此,它对关联变量(correlated variables)是敏感的。(因为算法可能会重复计算其影响)
- 朴素贝叶斯分类器在概率估计(probability estimation)上通常并不可靠,应该仅用作分配类的标签。
分类器诊断
混淆矩阵 (confusion matrix)
混淆矩阵是一个特定的表格布局,可以可视化分类器的性能。
真阳性(TP)是阳性实例被分类器正确识别为阳性的数量。伪阳性(FP)是实例被分类器识别为阳性但是实际上为阴性的数量。真阴性 (TN)是阴性实例被分类器正确认定为阴性的数量。伪阴性(FN)是实例被分类器识别为阴性但是实际上是阳性的数量。在二类分类器中,预设的阈值可用于区分阳性阴性。TP 和 TN 是正确的猜测。
精确度(Accuracy)
定义了模型能够正确地对记录进行分类的比例。
TPR, TNR, FPR, FNR
FPR也被称为误报率(false alarm rate)或者Ⅰ型错误率 (type Ⅰ error rate)。
FNR也被称为缺失率(miss rate)或者Ⅱ型错误率(type Ⅱ error rate)。
准确率 (Precision)
召回率 (Recall)
ROC和AUC
之前整理过:
点击:大数据分析笔记 - 逻辑回归分析