朴素贝叶斯
1. 什么是朴素贝叶斯
朴素贝叶斯是一个生成模型,用于分类任务。什么是生成模型?假设数据集$\{X,Y\}$是从一个概率分布$P(X,Y)$中抽取得到的,那么只要我们知道这个分布,就可以掌握这个数据集的规律。所以生成模型的任务就是要求出这个分布,知道这个数据集是怎么生成的。一句话概括就是生成模型是使用数据集总结出生成该数据集的几个概率分布。
前面提到朴素贝叶斯是一个生成模型,这个方法通过求出$P(X)$,$P(Y)$和$P(X|Y)$,使用贝叶斯公式:
求出关于$Y$的后验概率,通过这个后验概率确定$X$的类别。朴素贝叶斯的朴素之处在于这个方法假设条件概率$P(X|Y)=P(x_1,x_2,…,x_n|Y)$的各个特征是相互独立的,即:
总而言之,朴素贝叶斯根据$P(X)$,$P(Y)$和$P(X|Y)$,使用贝叶斯公式求出后验概率$P(Y|X)$,从该后验概率中选出概率最大的Y作为X的分类结果。
2. 如何求解
朴素贝叶斯要求求出$P(X)$,$P(Y)$和$P(X|Y)$,那么这几个概率分布应该怎么求呢?最简单的想法就是直接从数据集中进行统计,使用统计结果作为这些概率分布的近似值。而朴素贝叶斯也正是使用这种方法,但是使用数据集的统计量作为概率分布的近似这种做法需要数据量比较大,近似结果才会相对较好,所以朴素贝叶斯一般用于数据量较大的场景。需要注意的是,一些统计量可能会出现零的情况,这会导致连乘的结果为零,为了避免这种情况,使用拉普拉斯平滑。使用拉普拉斯平滑处理$P(X|Y)$时,在分母处加上特征$X$的特征值种数,在分子处每种特征值的出现次数加一,这样可以保证每个单词至少出现一次,同时保持概率分布积分等于一的条件。
3. 朴素贝叶斯方法的优缺点
优点:
(1) 模型简单,无需训练
缺点:
(1) 生成模型,需要数量大的样本
(2) 假设了特征之间的独立性
(3) 需要一些先验分布的知识
(4) 对缺失值的处理方法可能导致一些误差
逻辑回归
1. 什么是逻辑回归
逻辑回归是一个判别模型,主要用于二分类任务。什么是判别模型?已知一个数据样本$X$,现在需要从后验概率$P(Y|X)$中选出概率最大的$Y$作为样本$X$的分类结果。那么判别模型就是直接对$F(X)=P(Y|X)$进行建模,每当输入一个样本$X$,将该样本送入判别模型$F(X)$,得到的输出就是后验概率分布$P(Y|X)$。与生成模型不同,判别模型不需要知道$P(X)$,$P(Y)$和$P(X|Y)$,所以判别模型需要知道的细节比生成模型少。
前面提到逻辑回归是一个判别模型,且主要用于二分类任务。很多人就会问,逻辑回归名字里面的回归难道不是指这个方法用于回归任务吗?逻辑回归的回归主要是解释了这个方法与线性回归存在一定的联系,实际上,逻辑回归如果没有了sigmoid函数,与线性回归就是等价的。
在使用线性回归处理回归任务时,数据特征是$X={x_1,x_2,…,x_n}$,数据观测值是$Y$,模型参数是$\Theta={\theta_1,\theta_2,…,\theta_n}$,则线性回归主要是要学习模型参数$\Theta$使得:
最小,这里$m$是指数据集样本数。当$Y$是离散值,即这是一个分类任务时,如果继续使用线性回归去莽是行不通的。所以这里就提出了逻辑回归的方法。逻辑回归很简单,就是在线性回归的结果上再加一个激活函数,这个激活函数就是sigmoid函数:
其中$Z_i \in (0,1)$。我们将$Z_i$看作是将$X_i$归到类别$1$的概率,则$X_i$归到类别$0$的概率为$1-Z_i$。如果$Y_i=1$,那么我们希望$Z_i$尽量大,如果$Y_i=0$,那么我们希望$1-Z_i$尽量大,我们可以使用一条公式将两者结合在一起:
逻辑回归将每个样本的类别分布看作一个伯努利分布,逻辑回归要求这些伯努利分布的最大似然:
等价于要求:
使得上式最大化的模型参数$\Theta$就是关于逻辑回归方法的解了。
2. 如何求解
要求得逻辑回归模型的最优模型参数$\Theta$,一般采用梯度下降的方法,或者是一些迭代的求解方法。而求线性回归模型的最优模型参数往往采用最小二乘法一步到位。
3. 为什么是sigmoid函数
不知道大家有没有想过,为什么逻辑回归是在线性回归的基础上加上sigmoid函数而不是加上其他函数。如果直接从sigmoid函数的形式上看,我们会觉得很合理,因为将值域$(-\infin,\infin)$映射到了$(0,1)$。但是这种映射函数千千万万为什么偏偏就是sigmoid函数呢?这里总结了几个解释:
(1) 根据比值比决定,即假设线性回归求出来的是比值比的对数,即$\ln\frac{P(Y=1|X)}{P(Y=0|X)}$,通过比值比的对数映射回概率$P(Y=1|X)$,这个映射函数就是sigmoid函数。
(2) 根据最大熵原理决定,这种解释的最大问题是特征函数的设计。
(3) 由贝叶斯原理得到,假设$P(X|Y)$服从高斯分布,通过贝叶斯公式求得$P(Y|X)$需要经过一个sigmoid函数的映射。
(4) 由$P(Y|X)$服从伯努利分布,伯努利分布的指数族分布形式以及广义线性模型,可以推导出sigmoid函数。
在这里推导一下解释二。首先设定两个特征函数:
最大熵模型是要求出$P(y|x)$使得下式达到最小:
同时需要满足以下约束条件:
对其构造拉格朗日乘子法,并对$P(y|x)$求导,令导数等于0,可以得到:
求得:
已知:
所以有:
已知$y=\{0,1\}$,将$f_0(x,y)$和$f_1(x,y)$的函数形式代入,可以得到:
则$P(y=1|x)$等于:
将分子约为1,得到:
将$w_1-w_0$看作是参数,这就转化成了sigmoid函数的形式了。求出最大熵模型下$P(y=1|x)$的形式,接下来还需要求参数$w_1-w_0$,求参数的过程就是使用梯度下降法求逻辑回归模型参数的过程。所以,本质上,逻辑回归模型就是使用最大熵模型去求解二分类问题。现在我们解释了sigmoid函数的由来,我们知道当使用逻辑回归模型求解多分类的问题时,使用到softmax函数。其实sigmoid函数是softmax函数在二分类时的版本,softmax函数更一般,可以应付多分类问题。至于为什么使用softmax函数,也可以套用上面最大熵模型的求解过程,得到多分类时使用softmax函数的结论。
4. 为什么使用交叉熵损失函数
线性回归模型使用均方误差损失函数而逻辑回归模型使用交叉熵损失函数。之所以使用交叉熵损失函数有以下原因:
(1) 交叉熵损失函数对模型参数是凸函数,其二阶梯度恒大于等于0;均方误差损失函数对模型参数不能保证是凸函数
(2) 交叉熵损失函数对模型参数的梯度与模型输出与目标输出的残差相关。残差越大,梯度越大,更新越快;残差越小,梯度越小,更新越慢。而均方误差损失函数对模型参数的梯度不仅与残差有关还与sigmoid函数的梯度有关,当在sigmoid函数的饱和区时,会造成梯度接近于0,从而减慢模型参数的更新。
5. LR的优缺点
逻辑回归模型的优点有:
(1) 模型易于实现,结果通俗易懂
(2) 特征重要程度一目了然,对应参数即是特征重要度
缺点有:
(1) 容易受到数据不均衡的影响
(2) 本身不能处理特征的缺失值,需要对缺失值进行预处理
(3) 模型是线性模型,容易欠拟合
(4) 多重共线性问题,容易过拟合