一、问题背景
逻辑斯蒂回归模型是一种分类模型,其目的解决分类问题而非回归问题。logistic回归是一个判别模型,直接学习后验概率分布,其学习算法可以理解为极大似然估计法。模型分类算法通过定义一个分离超平面来分割不同类别的数据,用sigmoid函数作为后验概率分布函数来对输入数据进行分类。模型的学习算法通过对样本进行极大似然估计获得似然函数,通过梯度下降法求解似然函数中的参数,也就是分离超平面的参数。接下来对算法进行详细介绍,主要解答以下问题。
- 为什么使用sigmoid函数
- 怎样进行极大似然估计
- 学习算法的收敛性分析
- 与其他模型进行对比
二、算法详解
1. 分类函数
分离超平面
这个函数具有这些性质使得函数经常被使用到机器学习的分类模型中。
- 自变量很小的时候函数值几乎为0,自变量很大的时候函数值几乎为1。这个性质和分离超平面配合进行分类。
- 函数可导并且导数很容易求解
σ′(x)=σ(x)(1−σ(x)) (求导过程不写了)
使用这个函数可以很容易的进行分类,当分离超平面求解出来之后,使用
2. 学习算法
这里以二分类问题为例,由于变量满足伯努利分布,两点分布的概率公式为
这里加入一种梯度下降法的改进方法,由于梯度下降法解决非凸优化问题时可能存在多个极值,梯度下降法中的步长问题十分困扰,较大的步长可以增强全局搜索能力但是可能会越过某一个极值点,较小的步长可以增加局部搜多的能力但是可能会陷入局部极值。我们希望算法刚开始能够有很强的全局搜索能力从而快速的到达极值附近,然后在算法后来能在局部进行细致的搜索到达极值点,这样希望步长随着迭代次数从大到小的变化。因此有一种改进的梯度下降法,开始初始化较大的步长
η ,每次迭代固定代数之后减小η 直至到达步长的下界。
令
3. 收敛性分析
对于每个方向的梯度公式可以这样理解,每个方向的梯度受到每个样本点在这个方向上的影响,例如第j个方向的
4. 对比
逻辑斯蒂回归和感知机模型、支持向量机模型对比
同样都用到了分离超平面,但是如何利用这个分离超平面有所区别。感知机模型将分离超平面对数据分割,寻找出所有错误的分类点,计算这些点到超平面的距离,使这一距离和最小化,也就是说感知机模型的最优化问题是使得错误分类点到超平面距离之和最小化。逻辑斯蒂回归是将分离超平面作为sigmoid函数的自变量进行输入,获得了样本点被分为正例和反例的条件概率,然后用极大似然估计极大化这个后验概率分布,也就是说逻辑斯蒂回归模型的最优化问题是极大似然估计样本的后验概率分布。支持向量机的最优化问题是最大化样本点到分离超平面的最小距离。三个算法的一些性能对比如下。
- 感知机模型计算简单,只需要计算错误样本点和标签的乘积对参数进行更新。其在线性可分的数据集中收敛,但在线性不可分的数据集中不收敛。
- 逻辑斯蒂回归相比感知机多了一层sigmoid函数的计算,计算仍然十分高效。其在线性可分的数据集中不能收敛但可以加入正则化来使算法收敛,在线性不可分的数据集中可以较好的收敛。
- 支持向量机计算相对复杂,但因为其实凸优化问题,因此算法一定可以收敛。
- 感知机模型无法加入核方法映射到高维,而逻辑斯蒂回归和支持向量机都能通过核方法对低维不可分高维可分的数据集进行分类。
- 感知机模型和支持向量机模型可以通过二分类方法的扩展处理多分类问题,方法是对每一类都产生一个分离超平面区分该类和其他类的样本。逻辑斯蒂回归进行多分类问题通过选择最后一个类为基准类,构造k-1个分离超平面(分类器),k-1个分类器计算sigmoid函数值求和在加1作为投票法的分母,每个分类器计算的sigmoid函数值作为分子进行投票,选出最大的分配到该类别。
三、实验
实验使用的测试集是UCI中的马的患病问题,使用299个训练样例,每个样例包括21个特征属性,分为0、1两类,有30%左右的缺损数据。使用67个测试样例。使用批处理梯度下降法计算的平均错误率为28.4%,使用随机梯度下降发计算的平均错误率为29.1%。python代码在这里。