逻辑回归(Logistic Regression)入门理解与推导

本文深入探讨了逻辑回归(LR)的基本原理,从线性回归出发,通过引入sigmoid函数将其转化为分类模型。详细介绍了LR的假设函数、损失函数及其求解过程,并提供了梯度下降法的参数更新公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑回归(LR)是一个分类算法,它可以处理二元分类问题和多元分类问题。在介绍LR之前,先回顾一下线性回归(Liner Regression)。

一、线性回归

线性回归是一个回归模型,给定数据集 D={(x1,y1),(x2,y2),...,(xm,ym)}D = \{ ({x_1},{y_1}),({x_2},{y_2}),...,({x_m},{y_m})\}D={(x1,y1),(x2,y2),...,(xm,ym)},包含 m 个样本,线性回归的假设函数为:

               hθ(x)=θ0x0+θ1x1+...+θnxn{h_\theta }(x) = {\theta _0}{x_0} + {\theta _1}{x_1} + ... + {\theta _n}{x_n}hθ(x)=θ0x0+θ1x1+...+θnxn

损失函数为:

               J(θ)=12m∑i=1m[hθ(x(i))−y(i)]2J(\theta ) = \frac{1}{{2m}}\sum\limits_{i = 1}^m {{{[{h_\theta }({x^{(i)}}) - {y^{(i)}}]}^2}}J(θ)=2m1i=1m[hθ(x(i))y(i)]2

带有 L2 正则化的损失函数为:

               J(θ)=12m{∑i=1m[hθ(x(i))−y(i)]2+λ∑j=1nθj2}J(\theta ) = \frac{1}{{2m}}\{ \sum\limits_{i = 1}^m {{{[{h_\theta }({x^{(i)}}) - {y^{(i)}}]}^2}} + \lambda \sum\limits_{j = 1}^n {{\theta _j}^2} \}J(θ)=2m1{i=1m[hθ(x(i))y(i)]2+λj=1nθj2}

线性回归的求解可以使用梯度下降法,也可以使用最小二乘法,以下是使用梯度下降法求解的步骤:

(1)初始化参数 λ\lambdaλε\varepsilonε
(2)确定当前位置损失函数的梯度,对于 θi{\theta _i}θi,其梯度为:
              ∂∂θiJ(θ0,θ1,...,θn)\frac{\partial }{{\partial {\theta _i}}}J({\theta _0},{\theta _1},...,{\theta _n})θiJ(θ0,θ1,...,θn)
(3)用步长 λ\lambdaλ 乘以梯度,得到下降的距离,即:
              λ∂∂θiJ(θ0,θ1,...,θn)\lambda \frac{\partial }{{\partial {\theta _i}}}J({\theta _0},{\theta _1},...,{\theta _n})λθiJ(θ0,θ1,...,θn)
(4)确定是否对于所有的 θi{\theta _i}θi,梯度下降的距离都小于 ε\varepsilonε,如果小于,算法终止;否则执行下一步;
(5)更新所有 θi{\theta _i}θi
              θi:=θi−λ∂∂θiJ(θ0,θ1,...,θn){\theta _i}: = {\theta _i} - \lambda \frac{\partial }{{\partial {\theta _i}}}J({\theta _0},{\theta _1},...,{\theta _n})θi:=θiλθiJ(θ0,θ1,...,θn)
(6)循环(1)-(5);

二、逻辑回归推导

由于线性回归模型的输出是连续的实值,而逻辑回归是二分类模型,因此需要把线性回归的实值转换成 0/1 值,在逻辑回归中采用 sigmoid 函数,即:

              g(z)=11+e−zg(z) = \frac{1}{{1 + {e^{ - z}}}}g(z)=1+ez1

这个函数有非常好的特性,即当 z 趋于正无穷时,函数值接近于1;当 z 趋于负无穷时,函数值接近于0,这个特性使它非常适用于 LR 模型,另外它的导数:

              g′(z)=g(z)(1−g(z)){g^\prime }(z) = g(z)(1 - g(z))g(z)=g(z)(1g(z))

sigmoid函数的图像如下图:

于是得到 LR 的假设函数:

              hθ(x)=11+e−θTx{h_\theta }(x) = \frac{1}{{1 + {e^{ - {\theta ^T}x}}}}hθ(x)=1+eθTx1

可以把 hθ(x){h_\theta }(x)hθ(x) 理解为样本 x 为正样本的概率,那么有:

           P(y=1∣x;θ)=hθ(x)P(y=0∣x;θ)=1−hθ(x)\begin{array}{l} P(y = 1|x;\theta ) = {h_\theta }(x)\\ P(y = 0|x;\theta ) = 1 - {h_\theta }(x) \end{array}P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x)

对于数据集中的 m 个样本来说,有极大似然函数:

以下是求解极大似然函数的过程,也是导出 LR 模型损失函数的过程:
对上式取负的对数,有:

J(θ)=−LnL(θ)=−∑i=1m[(y(i)log⁡hθ(x(i))+(1−y(i))log⁡(1−hθ(x(i))]J(\theta ) = - LnL(\theta ) = - \sum\limits_{i = 1}^m {[({y^{(i)}}\log {h_\theta }({x^{(i)}})} + (1 - {y^{(i)}})\log (1 - {h_\theta }({x^{(i)}})]J(θ)=LnL(θ)=i=1m[(y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i))]

此式即为LR模型的损失函数,这个函数正好是一个凸函数,可以使用梯度下降法进行求解,参数更新推导如下:

∂∂θjJ(θ)=−(y1hθ(x)−(1−y)11−hθ(x))∂∂θjhθ(x)\frac{\partial }{{\partial {\theta _j}}}J(\theta ) = - (y\frac{1}{{{h_\theta }(x)}} - (1 - y)\frac{1}{{1 - {h_\theta }(x)}})\frac{\partial }{{\partial {\theta _j}}}{h_\theta }(x)θjJ(θ)=(yhθ(x)1(1y)1hθ(x)1)θjhθ(x)

    =−y(1−hθ(x)−(1−y)hθ(x))hθ(x)(1−hθ(x))∂∂θjhθ(x)= - \frac{{y(1 - {h_\theta }(x) - (1 - y){h_\theta }(x))}}{{{h_\theta }(x)(1 - {h_\theta }(x))}}\frac{\partial }{{\partial {\theta _j}}}{h_\theta }(x)=hθ(x)(1hθ(x))y(1hθ(x)(1y)hθ(x))θjhθ(x)

    =−y−hθ(x)hθ(x)(1−hθ(x))hθ(x)(1−hθ(x))∂∂θjhθ(x)= - \frac{{y - {h_\theta }(x)}}{{{h_\theta }(x)(1 - {h_\theta }(x))}}{h_\theta }(x)(1 - {h_\theta }(x))\frac{\partial }{{\partial {\theta _j}}}{h_\theta }(x)=hθ(x)(1hθ(x))yhθ(x)hθ(x)(1hθ(x))θjhθ(x)

    =(hθ(x)−y)xj= ({h_\theta }(x) - y){x_j}=(hθ(x)y)xj

即更新:

    θj:=θj−λ(hθ(x(i))−y(i))xj(i){\theta _j}: = {\theta _j} - \lambda ({h_\theta }({x^{(i)}}) - {y^{(i)}}){x_j}^{(i)}θj:=θjλ(hθ(x(i))y(i))xj(i)

根据梯度下降算法的步骤更新即可求解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值