一篇文章完全弄懂Logistic回归(含极大似然估计详细推导和实现代码)

本文深入探讨Logistic回归,解释为何不使用线性回归解决分类问题,并详细阐述Sigmoid函数的选择原因。通过极大似然估计和交叉熵损失函数,介绍Logistic回归参数的估计过程,并展示如何使用梯度上升法更新参数。最后,提供了使用sklearn库实现Logistic回归的示例。
摘要由CSDN通过智能技术生成

别弄错了,Logistic回归是分类模型


什么是分类问题?

在学习线性回归的时候,我们已经理解了什么是回归,回归就是确定变量之间相互依赖的定量关系的统计学方法。那么同样,在开始学习Logistic回归模型前,我们先来看看什么是分类问题。

分类相比于回归要好理解得多了,我们按照所选取的样本的属性、特征对数据集的样本进行类别的划分,这就是分类

这里使用二分类举个例子。

上图对四个样本点,按照分类规则为若X > 0.6,则 Y = 0;否则 Y = 1,进行分类。很显然,对于二分类问题我们很直观的就能理解。使用分段函数就可以很清晰直观地表述出分类规则。如下:

y_{0}=\left\{\begin{array}{ll} 0, & \text { if } h_{\theta}\left(x_{0}\right)>0.6 \\ 1, & \text { if } h_{\theta}\left(x_{0}\right) \leq 0.6 \end{array}\right.


为什么不使用线性回归解决分类问题?

确实,在一些特别地情况下,线性回归的确可以找到分类的阈值。如果样本分布较为集中,我们的确可以使用线性回归构造一个线性方程从而找到两个类别间的区分点(阈值),如图所示。

但是,一旦样本点分布不均匀就会出现偏差了。不均匀的样本分布会导致线性方程的参数产生偏移,导致阈值x1会向分布较分散的类别倾斜,造成比较严重的误差,如图:

在y = 1 的类别中出现了一个 x 值过大的点,导致分类的阈值从原本的 x1 移动到了 x2。在这情况下已经有两个样本点已经分类错误了。

另一方面:我们希望分类模型的输出仅仅由 0 和 1 组成即可,而线性回归在趋向正无穷和负无穷的时候并没有极限,会使对应的输出有可能存在远大于 1 或者 远小于 0 的情况,这也是我们不采用线性回归的原因。

因此,我们希望在线性回归的基础上进行改进,使得样本点对应的输出限制在 0 到 1 的范围内。


Logistic回归模型

线性回归模型能够反映出变量之间的关系,而类别的划分是根据样本的属性字段相关,也就是说,样本的类别与样本的属性字段之间存在着定量的关联。因此我们需要线性回归找到类别与属性字段的关联,同时也希望函数的输出在 0 到 1 的范围内部。因此我们只需要在线性回归的基础上进行一些处理即可。首先列出线性回归的方程如下:

h_{\theta}(x) = \theta^{T} x

这假设方程当然不满足我们的需要,我们对其进行变形:

h_{\theta}(x)=g\left(\theta^{T} x\right)

而这里的 g(x) 函数就是计算机视觉中的神器之一:Sigmoid函数

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

为什么选择Sigmoid函数呢?

我们来看看它的图形就知道原因了。

这里我使用了 matplotlib 完成对 Sigmoid 函数的绘制,代码如下:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

见见大魔王

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

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

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

打赏作者

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

抵扣说明:

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

余额充值