逻辑回归

本文深入探讨了逻辑回归算法,一种广泛应用于二元分类问题的机器学习方法。解释了假设函数如何计算输出变量为正向类的概率,并介绍了决策边界的概念。同时,详细阐述了逻辑回归的代价函数及其梯度下降算法。

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

分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误),其往往是一个离散的值。比如:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈。

逻辑回归算法,是用于分类问题的最广泛的学习算法。



简单二元分类


我们将因变量(dependent variable)可能属于的两个类分别称为负向类(negative class)正向类(positive class),则因变量 y∈{0,1} ,其中 0 表示负向类,1 表示正向类。

而我们将用逻辑回归算法使得假设函数 h θ ( x ) h_\theta(x) hθ(x) 的输出范围∈[0,1],表示 P ( y = 1 ∣ x ;   θ ) P(y=1|x;\ \theta) P(y=1x; θ),即“因变量 y=1 的概率”。


注:虽然“逻辑回归”的名字中带有“回归”二字,但其仍属于分类算法。



逻辑回归


假设模型

如果对如图的数据集进行线性回归的话,会得到一条直线。其结果并不能用作分类(值域不在0-1内)
在这里插入图片描述


逻辑回归的预测模型为:
h θ ( x ) = g ( θ T X ) h_\theta(x) = g(\theta^TX) hθ(x)=g(θTX)
其中
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1

该函数图像如图所示:在这里插入图片描述
如前所言, h θ ( x ) h_\theta(x) hθ(x) 的作用是:对于给定的输入变量,根据选择的参数计算输出变量=1的可能性,即 P ( y = 1 ∣ x ;   θ ) P(y=1|x;\ \theta) P(y=1x; θ)
例如,如果对于给定的?,通过已经确定的参数计算得出 h θ ( x ) h_\theta(x) hθ(x) = 0.7,则表示有70%的几率?为正向类,相应地?为负向类的几率为 30%

决策边界

若以0.5作为区分正向类与负向类的阈值,则可以发现:对于函数 g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1,在 z < 0 z<0 z<0时, g ( z ) g(z) g(z)< 0.5 0.5 0.5 ;而 z > 0 z>0 z>0时, g ( z ) g(z) g(z) > 0.5 0.5 0.5

θ T x > 0 \theta^Tx>0 θTx>0 时, y y y = 1 1 1
θ T x < 0 \theta^Tx<0 θTx<0 时, y y y = 0 0 0


在这里插入图片描述
假设有如图的数据集,且经过线性回归后得到 θ T X = − 3 + x 1 + x 2 \theta^TX = -3 + x_1 + x_2 θTX=3+x1+x2

则在图上画出 x 1 + x 2 = 3 x_1+x_2=3 x1+x2=3的图像。不难看出,这便是数据集的分界线,被称为决策边界(decision boundary)。将预测为 1 的区域( − 3 + x 1 + x 2 > 0 -3 + x_1 + x_2>0 3+x1+x2>0)和预测为 0 的区域( − 3 + x 1 + x 2 < 0 -3 + x_1 + x_2<0 3+x1+x2<0)分隔开。

  • 注:决策边界是假设模型的属性,而不是数据集的属性。决策边界取决于模型的选择。

我们可以用非常复杂的模型来适应非常复杂形状的判定边界。
如图,假设已知 h θ ( x ) = − 1 + x 1 2 + x 2 2 h_\theta(x)=-1 +x_1^2+x_2^2 hθ(x)=1+x12+x22,即正好是一个以原点为圆心,1为半径的圆。
在这里插入图片描述



代价函数

若将逻辑回归的模型代入线性回归的代价函数(误差平方和,即方差),得到的代价函数将会是一个非凸函数(non-convexfunction),无法进行梯度下降
在这里插入图片描述
对于线性回归,其代价函数可以表示为:(这是单训练样本的代价函数表达形式)
C o s t ( h θ ( x ) ,   y ) = 1 2 ( h θ ( x ) − y ) 2 Cost(h_\theta(x),\ y)=\frac{1}{2}(h_\theta(x)-y)^2 Cost(hθ(x), y)=21(hθ(x)y)2
J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) ,   y ( i ) ) J(\theta)=\frac{1}{m}\sum^{m}_{i=1}Cost(h_\theta(x^{(i)}),\ y^{(i)}) J(θ)=m1i=1mCost(hθ(x(i)), y(i))

而逻辑回归的代价函数较为不同。
C o s t ( h θ ( x ) ,   y ) = { − log ⁡ ( h θ ( x ) ) y = 1 − ( log ⁡ ( 1 − h θ ( x ) ) ) y = 0 Cost(h_\theta(x),\ y)=\begin{cases} -\log(h_\theta(x)) & y = 1 \\ -(\log(1-h_\theta(x))) & y = 0 \end{cases} Cost(hθ(x), y)={log(hθ(x))(log(1hθ(x)))y=1y=0
这样构建的 C o s t ( h θ ( x ) , y ) Cost(h_\theta(x),y) Cost(hθ(x),y)函数的特点是:当实际的 ? = 1 且 h θ ( x ) h_\theta(x) hθ(x)也为 1 时误差为 0,当 ? = 1 但 h θ ( x ) h_\theta(x) hθ(x)不为 1 时误差随着 h θ ( x ) h_\theta(x) hθ(x)变小而变大;当实际的 ? = 0 且ℎ?(?)也为 0 时代价为 0,当? = 0 但 h θ ( x ) h_\theta(x) hθ(x)不为 0 时误差随着 h θ ( x ) h_\theta(x) hθ(x)的变大而变大。
在这里插入图片描述

为了对其进行梯度下降,将其化简为:
C o s t ( h θ ( x ) ,   y ) = − y log ⁡ ( h θ ( x ) ) − ( 1 − y ) log ⁡ ( 1 − h θ ( x ) ) Cost(h_\theta(x),\ y)=-y\log(h_\theta(x))-(1-y) \log(1-h_\theta(x)) Cost(hθ(x), y)=ylog(hθ(x))(1y)log(1hθ(x))

J ( θ ) = − 1 m ∑ i = 1 m [ y log ⁡ ( h θ ( x ) ) + ( 1 − y ) log ⁡ ( 1 − h θ ( x ) ] J(\theta) = -\frac{1}{m}\sum^{m}_{i=1}[y\log(h_\theta(x))+(1-y) \log(1-h_\theta(x)] J(θ)=m1i=1m[ylog(hθ(x))+(1y)log(1hθ(x)]

接着对其使用梯度下降,需要对其求偏导。
求导过程:
在这里插入图片描述

  • 注:可以发现最后的结果和线性回归的代价函数求导结果一样,但其性质完全不同,因为 h θ ( x ) h_\theta(x) hθ(x)的性质不一样。

最终得到梯度下降算法:
R e p e a t { θ j = θ j − α 1 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] x j ( i ) } \begin {aligned} Re&peat \{ \\ &\theta_j = \theta_j - \alpha\frac{1}{m}\sum^{m}_{i=1}[h_\theta(x^{(i)})-y^{(i)}]x_j^{(i)}\\ &\} \end {aligned} Repeat{θj=θjαm1i=1m[hθ(x(i))y(i)]xj(i)}



多类别分类:一对多


现实中有很多的多类别分类问题。比如判断天气是阴晴雨雪,或者判断邮件由来是家庭、公司或者陌生人。
用不同的编号表示不同的类别(比如 晴是1,阴是2,雨是3,雪是4)

多类别分类的数据集可能会像这样:

在这里插入图片描述
解决这种问题可以用一种叫“一对多”(one-vs-all)的算法,是由二元分类推广而来的,有时也叫“一对余(one-vs-rest)”

  • 我们先从用三角形代表的类别 1 开始,实际上我们可以创建一个,新的"伪"训练集,类
    型 2 和类型 3 定为同一种负类,类型 1 设定为正类,我们创建一个新的训练集。
    在这里插入图片描述
    这样可以得到一个二元分类模型,记为 h θ ( 1 ) ( x ) h_\theta^{(1)}(x) hθ(1)(x)

  • 以此类推,得到一系列模型。其中 h θ ( i ) ( x ) h_\theta^{(i)}(x) hθ(i)(x)代表的含义为:y = i 的概率,即 P ( y = i ∣ x ;   θ ) P(y=i|x;\ \theta) P(y=ix; θ)
    在这里插入图片描述
  • 当我们输入一个新的x时,可以得到3个结果,然后我们选择最大的一个,即 max ⁡ h θ ( i ) ( x ) \max h_\theta^{(i)}(x) maxhθ(i)(x) i i i 即为预测结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值