机器学习之_逻辑回归

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xieyan0811/article/details/83037668

逻辑回归又称logistic回归,逻辑斯谛回归,是一种广义的线性回归分析模型。

1. Sigmod函数

 Sigmoid函数也是神经网络中常用的函数,用于把x从负无穷到正无穷压缩到y从0到1之间。画出来就是一条S型曲线,如下图中的蓝色曲线:

 它以0点为中心对称,公式如下:

 当x值接近负无穷时,分母很大,S(x)接近0,当x接近正无穷时,分母接近1,S(x)接近1,当x为0时,S(x)为1/2在正中间。S曲线的弯曲程度由e决定。 它的导数是上图中的橙色曲线:

 导数的意义是变化率,当x很大时或很小时,S’(x)接近0,而在x接近0时,S’(x)值最大,即S曲线在0点处变化剧烈,它勾勒出了y在0与1之间模棱两可的区域。

2. 逻辑斯谛分布

 必须满足逻辑斯谛分布,才能用逻辑回归。那么什么是逻辑斯谛分布?
逻辑斯谛分布即增长分布,增长分布的分布函数是“增长函数”,公式如下:

 可以看到,它把(x-μ)/γ代入Sigmoid函数。其中μ是位置参数,也可解释为数学期望(大多数情况下是均值),散布中心,而γ是形状参数,它描述了散布程度(集中还是分散)。逻辑斯谛分布记为L(μ,γ),当时μ=0,γ=1,称为标准的逻辑斯谛分布,就是Sigmoid函数。

 我们形象地看一下μ和γ的功能:假设μ=3, γ=2,绘出的曲线如下:

 相比,它的中心点在μ=3(横坐标3,纵坐标1/2),且曲线也比较平缓γ=2,γ值越小,中心附近变化越剧烈。 增长函数是sigmoid的扩展,它将以0为中心以1为单位的S曲线,扩展为以μ为中心,以γ为单位的S曲线。 换言之,只要分布符合S曲线,就能用逻辑回归。

3. 分布函数和密度函数

 从概率的角度上讲,蓝色曲线它是分布函数,分布函数也叫累计分布函数(积分),它的函数值是概率P(X<=x),x越靠右,概率X发生的概率越大。

 常用的说明例子是:植物群体中发病的普遍率,横轴为时间,纵轴为发病率,一开始发病的植物少,增长缓慢,在中段出现爆发式增长,最终增长变慢,饱合达到100%。可以说分布函数中的Y是一个随时间积累得到的量(单调上升),即到时刻x为止,发病植物占所有植物的比例。而它的导数橙色线,即x时刻新发病的植物占整体的比例,即密度函数。

4. 逻辑回归

 逻辑回归又称logistic回归,逻辑斯谛回归,是一种广义的线性回归分析模型。线性模型是通过一组值X0…Xn预测Y的具体值(从特征预测结果),而逻辑回归是将用X0…Xn预测Y属于哪个分类(A/B分类),基本的逻辑是先预测具体值,然后再用Sigmoid函数将具体值映射到0-1之间。如果这个概率大于0.5,则认为是A类。而决定0.5的因素是各个特征的权重。

(1) 疑问一:直线和S曲线有什么关系?

 y1=wx+b想像它的图像是x为横轴,y1为纵轴的一条直线,纵轴范围很大。而Sigmoid是0-1间的曲线,先把wx+b计算出y1,再将y1代入sigmoid函数,计算y2: y1=w*x+b (公式1)

 y2=sigmoid(y1) (公式2) 这是个函数嵌套,所以结果并不直观;它相当于把x轴映射到y轴(蓝色),再把y轴按S曲线从正无穷到负无穷压缩到了0-1之间(橙色)。

(2) 疑问二:Sigmoid函数和概率有什么关系?

 把直线方程代入Sigmoid函数(公式1代入公式2),公式如下:

 如果看成二分类问题,当sigmoid函数值大于0.5时认为是A类,否则认为是B类。通过直线方程,我们用特征x预测目标值y1,而通过sigmoid的变换,计算出该值属于哪个分类的概率y2。容易看出:上式的两个概率之和为1(两种可能性加起来是100%)。逻辑斯谛回归比较两个条件概率值的大小,将实例x分到概率值较大的一类中。

 把x和w推广到高维多特征的情况下,w=(w1,w2,w3…b), x=(x1,x2,x3,…1)则公式变换如下:

 可以说,逻辑回归基本上就是线性回归的扩展。

5 模型参数的估计

 具体应用时,我们知道实例有多个特征x(x1,x2,x3…),求各个特征对应的权重w(w1,w2,w3…b),使得各个实例都能正确分类,求取w一般使用梯度上升法或牛顿法,这里讲讲梯度上升法。

6. 应用

 需要注意的是w*x是线性函数,每个x与y之间,需要服从单调上升或者调下降的关系,如果不服从这种关系,就不能用逻辑回归。比如目标分类y是强壮与否,而特征x是年龄,我们知道并不是年龄越大越强壮(老年人),二者间并不存在同增同减的关系,年龄因素就没法直接使用逻辑回归,除非先对年龄做变换,例如abs(年龄-35)。

7. 参考

(1) 概率论中常见分布总结以及python的scipy库使用:两点分布、二项分布、几何分布、泊松分布、均匀分布、指数分布、正态分布
https://www.cnblogs.com/pinking/p/7898313.html

猜你喜欢

转载自blog.csdn.net/xieyan0811/article/details/83037668