分类问题经典算法 | 二分类问题 | Logistic回归:梯度下降

一. 损失函数

Logistic回归算法公式推导篇中,我们通过对似然函数求对数,得到 l ( θ ) l(\theta ) l(θ)
l ( θ ) = l n [ L ( θ ) ] = ∑ i = 1 M { y ( i ) l n [ h θ ( x ( i ) ) ] + ( 1 − y ( i ) ) l n [ 1 − h θ ( x ( i ) ) ] } l(\theta )=ln\left [ L(\theta)\right ]=\sum_{i=1}^{M}\left \{y^{(i)}ln[h_{\theta}(x^{(i)} )]+(1-y^{(i)})ln[1-h_{\theta}(x^{(i)} )] \right \} l(θ)=ln[L(θ)]=i=1M{y(i)ln[hθ(x(i))]+(1y(i))ln[1hθ(x(i))]}

公式解释1: l ( θ ) l(\theta ) l(θ)

对于似然函数,其含义可以解释为:

用已知的观测数据(x值、y值),在某个事件发生概率最大时候,求函数的参数


究竟上述的这个事件发生概率有多大呢?当然是概率越接近1越好,越大越好

结合对似然函数的描述,当似然函数取最大时,模型最优,那么此时我们就可以定义损失函数
J ( θ ) = − l ( θ ) = ∑ i = 1 M { − y ( i ) l n [ h θ ( x ( i ) ) ] − ( 1 − y ( i ) ) l n [ 1 − h θ ( x ( i ) ) ] } J(\theta)=-l(\theta)=\sum_{i=1}^{M}\left \{-y^{(i)}ln[h_{\theta}(x^{(i)} )]-(1-y^{(i)})ln[1-h_{\theta}(x^{(i)} )] \right \} J(θ)=l(θ)=i=1M{y(i)ln[hθ(x(i))](1y(i))ln[1hθ(x(i))]}

公式解释2: J ( θ ) J(\theta ) J(θ)

对于损失函数这样定义不太理解的同学,看这里!!!

明确我们预测的目的:

对于一个样本的预测,我们希望模型能预测真实标签的概率越接近1越好,预测的越准确越好

上述目的如果套用至似然函数中,我们就可以说:

对于观测数据(有1有0),我希望模型预测真实标签的概率越接近1越好

若我对似然函数取反,他的含义就变得非常符合我们对于损失函数的要求,即损失越小越好:

对于观测数据,此时我们的期望就变成了,预测真实标签的概率越接近0越好,预测的准确率越低越好;

而事件(预测的准确率越低越好)发生的概率,从预测目的来说,我们希望越低越好,即损失函数越小越好

其实,从数学层面讲,似然函数求最大值就等价于求公式前加负号的最小值

1. 交叉熵损失函数

上述定义的损失函数,是非常著名的交叉熵(CrossEntropy)损失函数 ,该函数为凸函数,表示为:
C o s t ( h θ ( x ) , y ) = { − l n ( h θ ( x ) ) , y = 1 − l n ( 1 − h θ ( x ) ) , y = 0 Cost(h_{\theta}(x),y)=\left\{\begin{matrix}-ln(h_{\theta}(x)),y=1 \\-ln(1-h_{\theta}(x)),y=0\end{matrix}\right. Cost(hθ(x),y)={ln(hθ(x))y=1ln(1hθ(x))y=0
在这里插入图片描述

2. 梯度下降

在定义模型的损失函数后,通过对损失求导来更新梯度,梯度更新公式:
θ i ′ = θ i − α ∂ J ∂ θ i {\theta _{i} }' =\theta _{i}-\alpha \tfrac{\partial J}{\partial \theta _{i}} θi=θiαθiJ

其中,损失函数的梯度值为 ∂ J ( θ ) ∂ θ j = ∑ i = 1 M [ h θ ( x ( i ) ) − y ( i ) ] ∗ x j ( i ) \frac{\partial J(\theta )}{\partial \theta _{j} }=\sum_{i=1}^{M}[h_{\theta}(x^{(i)} )-y^{(i)} ] \ast x_{j}^{(i)} θjJ(θ)=i=1M[hθ(x(i))y(i)]xj(i)

推导过程在Logistic回归算法 公式推导篇中


感谢阅读🌼
如果喜欢这篇文章,记得点赞👍和转发🔄哦!
有任何想法或问题,欢迎留言交流💬,我们下次见!

祝愉快🌟!


  • 30
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
二分类问题机器学习中的一种常见问题,可以使用回归算法来解决。Python中的logistic回归是一种二分类算法,可用于将数据分为两个类别。 随机梯度下降是一种常用的优化算法,用于最小化目标函数。在logistic回归中,我们使用的是交叉熵损失函数作为目标函数。随机梯度下降的思想是在每次迭代中仅使用一个样本来更新权重。这与批量梯度下降不同,后者需要用到所有训练样本。 使用Python进行logistic回归二分类随机梯度下降,我们需要以下步骤: 1. 导入所需的库,如numpy和matplotlib。 2. 加载训练数据集,将数据划分为特征X和标签y。 3. 初始化模型的权重w和偏差b。 4. 定义sigmoid函数,用于将线性回归输出转换为概率值。 5. 定义损失函数,例如交叉熵损失函数。 6. 定义梯度计算函数,用于计算每个参数的梯度。 7. 选择学习率和迭代次数。 8. 使用随机梯度下降算法更新权重,直到达到最大迭代次数或损失函数收敛。 9. 对测试数据进行预测,计算准确率或其他评价指标。 随机梯度下降算法能够更快地收敛,但可能会牺牲一些精确度。因此,在实际应用中,需要权衡精确度和计算效率。通过调整学习率和迭代次数,可以在准确率和计算效率之间找到一个平衡点。 总结起来,Python中的logistic回归二分类随机梯度下降是一种用于解决二分类问题机器学习算法。它通过使用随机梯度下降算法和交叉熵损失函数来更新权重,以逐步优化模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ToBeCertain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值