机器学习之_逻辑回归
机器学习之 _ 逻辑回归
逻辑回归又称 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=w * x+b 想像它的图像是 x 为横轴,y1 为纵轴的一条直线,纵轴范围很大。而 Sigmoid 是 0-1 间的曲线,先把 w * x+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. 参考
- 概率论中常见分布总结以及 python 的 scipy 库使用:两点分布、二项分布、几何分布、泊松分布、均匀分布、指数分布、正态分布
https://www.cnblogs.com/pinking/p/7898313.html