逻辑回归(Logistic Regression)原理(理论篇)

傅瑾颜 2024-07-17 10:01:01 阅读 50

目录

一、逻辑回归简介及应用

二、逻辑回归的原理

(1)sigmoid函数

(2)输入和输出形式

 (3)基于目标函数求解参数w

三、逻辑回归代码复现


一、逻辑回归简介及应用

        logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等。因此因变量就为是否胃癌,值为“是”或“否”,自变量就可以包括很多了,如年龄、性别、饮食习惯、幽门螺杆菌感染等。然后通过logistic回归分析,可以得到自变量的权重,同时根据该权值可以根据危险因素预测一个人患癌症的可能性。

       Logistic回归的因变量可以是二分类的,如上述中是否患胃癌;也可以是多分类的,如mnist手写识别,但是二分类的更为常用,也更加容易解释。所以实际中最常用的就是二分类的Logistic回归。

二、逻辑回归的原理

        谈到回归问题,第一反应是:

y = kx+b

在二维平面上是一条直线。当 

k

 和 

b

 确定时,对于回归问题,假设

x

为面积,经过线性映射,可以得到其体积

y

,则完成回归任务;对于分类问题,假设

x

为某个特征,经过线性映射,得到

y

>0,或<0,或=0,若规定大于0的为正标签,小于等于0的为负标签,则完成了分类任务。

        同理可得,当方程为多元方程时: 

f(x)=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+\begin{matrix} ... \end{matrix}+w_{n}x_{1n}+b=\overrightarrow{w}\cdot \overrightarrow{x}+b=w^{T}x

   ,如下图所示:

          如果继续对多元方程回归得到的

f(x)

规定大于0的为正标签,小于等于0的为负标签。由于

f(x)

的值域为

\left ( -\infty, +\infty \right )

,这样规定对于决策很不友好;若

f(w)\in \left [ 0,1 \right ]

,规定大于阈值0.5为正标签,小于等于阈值0.5为负标签,那么越比0.5大,就越说明决策函数给出的正类的可信度越高,反之亦然。这样不仅灵活,而且可以根据数据情况调整不同的阈值来达到最佳准召率。

(1)sigmoid函数

  输入数据

x_{i}

,经过函数映射为

\left [ 0\sim 1 \right ]

,该函数为sigmoid函数,形式为

sigmoid=\frac{1}{1+e^{-z}}

(2)输入和输出形式

        输入:

x=\left ( x_{1}\,\, x_{2}\,\, x_{3}\,\, \begin{matrix} ... \end{matrix}x_{n}\,\,1\right )

       输出:   

p=\frac{1}{1+e^{-\left ( w_{_{1}}x_{1}+w_{_{2}}x_{2}+w_{_{3}}x_{3}+\begin{matrix} ... \end{matrix}+w_{_{n}}x_{n}+b\right )}} =\frac{1}{1+e^{-\left ( \vec{w}\cdot \vec{x}+b \right )}}

,其中

\sigma (z)=\frac{1}{1+e^{-z}}

 

这里

\vec{x}

\vec{w}

如图所示,分别为输入数据和待求参数,

b

为偏置项,为了后续推导方便,设定:

\vec{w}\cdot \vec{x}+b=w^{^{T}}x

,即

w=\left ( w_{1} \, \, w_{2}\, \, w_{3}\, \,\begin{matrix} ...& \end{matrix} w_{n} \, \, b\right )

x=\left ( x_{1}\,\, x_{2}\,\, x_{3}\,\, \begin{matrix} ... \end{matrix}x_{n}\,\,1\right )

        输出值

a

就是概率值,对

a

中参数

w,b

的求导过程如下所示,后面会用到,先求出来放在这里哈:

 

a'=(\frac{1}{1+e^{-(w^{T}x)}})'=\frac{e^{-w^{T}x}\cdot x^{T}}{(1+e^{-w^{T}x})^{2}}=a(1-a)x^{T}

        求导过程为除法求导运算法则,需要注意一个推导公式:

(w^{T}x)'=\frac{\partial w^{T}x}{\partial w}=x^{T}

 (3)基于目标函数求解参数w

        极大似然估计提供了一种基于给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。简单说来,就是知道了模型和结果,求解使得事件结果以最大概率发生时出现的参数。

        基于逻辑回归的计算式,对应标签1和0的概率分别为:

P(Y=1|X)=\frac{1}{1+e^{-(w^{T}x)}}=p(x)

P(Y=0|X)=\frac{1}{1+e^{-(w^{T}x)}}=1-p(x)

        第一步,构造极大似然函数,计算这些样本的似然函数,其实就是把每个样本的概率乘起来,

L(w,x)=\prod_{i=1}^{n}P(y_{i}|x_{i})=\prod_{i=1}^{n}p^{y_{i}}(1-p)^{(1-y_{i})}

        第二步,两边取对数得:

ln\prod_{i=1}^{n}p^{y_{i}}(1-p)^{(1-y_{i})}=\sum_{i=1}^{n}y_{i}lnp+\sum_{i=1}^{n}(1-y_{i})ln(1-p)

tips:由于极大似然函数中有连乘符号,取对数,将连乘变为加和。

        目标函数为:

L(x,w)=\sum_{i=1}^{n}y_{i}lnp+\sum_{i=1}^{n}(1-y_{i})ln(1-p)

其中,y为真值,p为预测值。

        原函数求最大值,等价于乘以负1后求最小值。对于n个数据累加后值较大,用梯度下降容易导致梯度爆炸,可处于样本总数n,即

        

L(x,w)=-\frac{1}{n}(\sum_{i=1}^{n}y_{i}lnp+\sum_{i=1}^{n}(1-y_{i})ln(1-p))

        第三步,对目标函数中参数w求导:为了求导过程更清晰,先去掉求和符号

\frac{\partial L}{\partial w}=-\frac{1}{n}(\frac{y_{i}}{p}{p}'-\frac{1-y_{i}}{1-p}{p}')=-\frac{1}{n}(\frac{y_{i}}{p}-\frac{1-y_{i}}{1-p})p(1-p)x^{T}

=-\frac{1}{n}(y_{i}(1-p)x^{T}-(1-y_{i})px^{T} )=-\frac{1}{n}(y_{i}-p)x^{T}

tips:

p(x)'=p(x)(1-p(x))x^{T}

,该求导过程,涉及到对概率值p的求导,这个求导过程在前面已经推导完成。

        添加求和符号后为:

\frac{\partial L}{\partial w}=-\frac{1}{n}\sum_{i=n}^{n}(y_{i}-p)x^{T}

        基于梯度下降法求得最优w:

w_{t+1}=w_{t}+\frac{1}{n}\sum_{i=n}^{n}(y_{i}-p)x^{T}

三、逻辑回归代码复现

        后续补充。


参考文献:

【大道至简】机器学习算法之逻辑回归(Logistic Regression)详解(附代码)---非常通俗易懂!

        

        



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。