本文是我在学习了逻辑回归课程之后的总结,文中所阐述的内容仅仅是我个人的理解,如有错误或疏漏,欢迎大家批评指正。
1.逻辑回归的假设函数
在分类问题中,二分类问题有着很重要的地位,例如在判断某人是否得某种病,或者某封邮件是否为垃圾邮件等等的场景中都会用到。考虑二分类问题,对于任意输入,输出结果应该只有两种情况,即{0,1} ,我们要找的假设函数 h(x) 需要符合这个标准,由此引入 logistic function:
g(z)=1+e−z1
他的函数图像:

假设函数可以写为:
hθ(x)=1+e−θTx1
让我们来理解一下,假设函数输出的是一个 (0, 1) 之间的数,可以把这个数看作是 y 为 1 的可能性,如果假设函数的输出为 0.9,可以认为这一组样本的输出结果为 1 的概率就比较大。由此可以写出下面的式子
P(y=1∣x;θ)=hθ(x)=g(θTx)
P(y=0∣x;θ)=1−P(y=1∣x;θ)=1−hθ(x)=1−g(θTx)
这两个式子可以合并为一个式子,无论在 y 为 0 或者 1 时都成立:
P(y∣x;θ)=hθ(x)y(1−hθ(x))1−y
·
2.最大似然估计(Maximum Likehood Estimation, MLE)
最大似然估计的意思是在模型已经确定的情况下,求解最有可能让这个模型出现的参数,这是一个逆推的过程。常用八个字概括“模型已定,参数未知”。
根据最大似然估计,写出似然函数,通俗来说就是你拿到的这个模型长这样,这件事发生的概率是多少呢,用似然函数来表示:
L(θ)=i=1∏mP(y(i)∣x(i);θ)
=i=1∏mhθ(x(i))y(i)(1−hθ(x(i)))1−y(i)
取对数:
l(θ)=log(L(θ))=i=1∑m(y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i))))
我们的目标是让模型长成这个样子的概率最大,可以更好的拟合这个模型,即求:
maxθl(θ)
·
3. 梯度下降
根据上节课所学的梯度下降法,求 l(θ) 的偏导数,下面是偏导数的数学公式推导,有兴趣的同学可以自己推导一遍:
∂θj∂l(θ)=i=1∑m(y(i)∙hθ(x(i))1∙∂θj∂hθ(x(i))+(1−y(i))∙1−hθ(x(i))1∙−∂θj∂hθ(x(i)))
=i=1∑m(∂θj∂hθ(x(i))∙hθ(x(i))∙(1−hθ(x(i)))y(i)−hθ(x(i)))⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅(1)式
把里面一个求导拿出来求解,注意是对θj求导,只有 θj 是变量,其他都是常量:
∂θj∂hθ(x(i))=∂θj∂(1+e−θTx1)
=(eθTx(i)+1)2xjeθTx(i)
=xj∙eθTx(i)+1eθTx(i)∙eθTx(i)+11
=xj∙hθ(x(i))∙(1−hθ(x(i))
结果带入( 1 )式,得到:
∂θj∂l(θ)=i=1∑m(y(i)−hθ(x(i)))∙xj(i)
参数 θj 的更新方式为:
θj:=θj−αi=1∑m(y(i)−hθ(x(i)))∙xj(i)
我自己理解其实式子里 α 前面的正负其实无所谓,当你沿着梯度方向反向下降时,不就是梯度上升,那么就可以找到最大值了。
至此,逻辑回归的原理总结完了,这个分类算法很特别,它不是简单输出一个类别,它输出的是一个可能性,希望这篇文章可以帮助你学习这个特别的分类算法。如果你觉得有用的话不妨点个赞哦。
正在学习 python / 机器学习吗?欢迎关注公号「MachineLearning学习之路」,扫描下方二维码带走我:
