逻辑回归(Logistic Regression)
是机器学习中的一种分类模型,它是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。
看到回归
二字,很多人可能会认为逻辑回归算法是线性回归算法的升级,还是属于回归任务吧?其实并不是这样的,逻辑回归本质上是一个经典的二分类问题,要做的任务性质发生了变化,也就是一个是否或者说0/1问题,有了线性回归的基础,只需稍作改变,就能完成分类任务。
由于逻辑回归算法的简单和高效,在实际中应用非常广泛,比如判断是否为垃圾邮件、是否患病、金融诈骗、虚假账号等等,看到这里,我们可以发现其中的特点,那就是都属于两个类别之间的判断。一句话:逻辑回归就是解决二分类问题的利器。
逻辑回归原理推导
先来回顾一下线性回归算法得到的结果:输入特征数据,输出一个具体的值,可以把输出值当作一 个得分值。此时如果想做一个分类任务,要判断一个输入数据是正例还是负例,就可以比较各自的得分值,如果正例的得分值高,那么就说明这个输入数据属于正例类别。
例如,在图5-9中分别计算当前输入属于猫和狗类别的得分值,通过其大小确定最终的分类结果。但是在分类任务中用数值来表示结果还是不太恰当,如果能把得分值转换成概率值,就变得容易理解。假设正例的概率值是0.02,那么负例就是1–0.02=0.98(见图5-10)。
那么如何得到这个概率值呢?先来介绍下Sigmoid函数
,定义如下:
在Sigmoid函数中,自变量z可以取任意实数,其结果值域为[0,1],相当于输入一个任意大小的得分值,得到的结果都在[0,1]之间,恰好可以把它当作分类结果的概率值。
判断最终分类结果时,可以选择以0.5为阈值来进行正负例类别划分,例如输入数据所对应最终的结果为0.7,因0.7大于0.5,就归为正例。
将任意的输入映射到[0,1]区间,我们在线性回归中可以得到一个预测值,再将该值映射到Sigmoid 函数中,这样就完成了由值到概率的转换,也就是分类任务。
下面梳理一下计算流程,首先得到得分值,然后通过Sigmoid函数转换成概率值,公式如下:
这个公式与线性回归方程有点相似,仅仅多了Sigmoid函数这一项。x依旧是特征数据,θ依旧是每个 特征所对应的参数。下面对正例和负例情况分别进行分析。
逻辑回归求解
逻辑回归该如何进行求解呢?之前在推导线性回归的时候得出了目标函数,然后用梯度下降方法进行优化求解,这里貌似只多一项Sigmoid函数,求解的方式还是一样的。首先得到似然函数:
对上式两边取对数,进行化简,结果如下:
这里有一点区别,之前在最小二乘法中求的是极小值,自然用梯度下降,但是现在要求的目标却是极大值(极大似然估计),通常在机器学习优化中需要把上升问题转换成下降问题,只需取目标函数的相反数即可,此时应用梯度上升求最大值,引入
转换为梯度下降任务。
此时,只需求目标函数的极小值,按照梯度下降的方法,照样去求偏导:
上式直接给出了求偏导的结果,计算量其实并不大,但有几个角标容易弄混,这里再来强调一下, 下标i
表示样本,也就是迭代过程中,选择的样本编号;下标j
表示特征编号,也是参数编号,因为参数θ
和数据特征是一一对应的关系。观察可以发现,对
θ
j
θ_j
θj求偏导,最后得到的结果也是乘以
x
j
x_j
xj,这表示要对哪个参数进行更新,需要用其对应的特征数据,而与其他特征无关。
得到上面这个偏导数后,就可以对参数进行更新,公式如下:
这样就得到了在逻辑回归中每一个参数该如何进行更新,求解方法依旧是迭代优化的思想。找到最 合适的参数θ,任务也就完成了。
最后来总结一下逻辑回归的优点。
- 简单实用,在机器学习中并不是一味地选择复杂的算法,简单高效才是王道。
- 结果比较直观,参数值的意义可以理解,便于分析。
- 简单的模型,泛化能力更强,更通用。
基于以上优点,我们遇到分类问题都是先考虑逻辑回归算法,能解决问题根本不需要复杂的算法。往往简单的方法也能得到不错的结果,还能大大降低其过拟合风险,何乐而不为呢?
给时间一点时间,让过去过去,让开始开始。