欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 【Python机器学习】1.6. 逻辑回归理论(基础):逻辑函数、逻辑回归的原理、分类任务基本框架、通过线性回归求解分类问题

【Python机器学习】1.6. 逻辑回归理论(基础):逻辑函数、逻辑回归的原理、分类任务基本框架、通过线性回归求解分类问题

2025/3/10 16:32:06 来源:https://blog.csdn.net/weixin_71793197/article/details/146066189  浏览:    关键词:【Python机器学习】1.6. 逻辑回归理论(基础):逻辑函数、逻辑回归的原理、分类任务基本框架、通过线性回归求解分类问题

喜欢的话别忘了点赞、收藏加关注哦(关注即可查看全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
在这里插入图片描述

1.6.1. 如何求解分类问题?

举个简单的例子:根据余额,判断小明是否会去看电影。请添加图片描述

从这幅图中我们可以看到:

  • y = 0代表不看电影、y = 1代表去看电影
  • 余额为1、2、3、4、5时,去看电影(正样本)
  • 余额为-1、-2、-3、-4、-5时,不看电影(负样本)

1.6.2. 分类任务基本框架

那么如何让计算器来进行这样的分类任务呢?我们需要数学的帮助:
{ y = f ( x 1 , x 2 ⋯ x n ) 判断为类别  N , 如果  y = n \left\{ \begin{array}{l} y = f(x_1, x_2 \cdots x_n) \\ \text{判断为类别 } N, \text{ 如果 } y = n \end{array} \right. {y=f(x1,x2xn)判断为类别 N, 如果 y=n
分类任务分成两步:

  • 第一步是去求解预测出的结果,这个结果还不是我们最终想要的类别,而是类似于0、1、2这样的数字(离散的数)。
  • 第二步就是根据这个数字来判断它属于什么类别,比如说0的时候代表不看电影,1的时候代表看电影

具体到我们这里的看电影这个例子中,数学表述就是:
y = f ( x ) ∈ { 0 , 1 } y = f(x) \in \{0,1\} y=f(x){0,1}
f(x)的结果,也就是y,属于{0, 1},也就是说要么是0,要么是1。而在上文的图中我们也说过了y = 0代表不看电影(负样本)、y = 1代表去看电影(正样本).

那么此时这个例子的核心问题就转变为了寻找f(x)

1.6.3. 通过线性回归求解分类问题

我们先采用一个非常简单的模型,就是我们之前讲的线性回归模型(原理详见 1.2. 线性回归理论)。使用这个模型的目的在于预测点的分布情况。

我们首先不管是正样本还是负样本,我们现在要做的只是把点的分布给模拟出来:
请添加图片描述

拟合出来的线是y = 0.1364x + 0.5,这就是展现点可能的分布的函数。

这条线上的点不只有0和1怎么办呢?很简单,我们只要取0和1的中点——0.5即可。只要是分布函数的y值大于0.5,我们就把它认定为是1,也就是去看电影;反之就认定为0,不会去看电影。

更专业地说,我们会把0.5叫做阈值。而这种把很多值(分布函数上的值)根据阈值最终整理为两个值(0或1)的操作叫做二值化

这样一来我们就完成了一个非常简单的分类任务的预测。我们再来总结一下步骤:
( 1 ) Y = 0.1364 x + 0.5 ( 2 ) y = f ( x ) = { 1 , Y ≥ 0.5 0 , Y < 0.5 \begin{aligned} (1) \quad Y &= 0.1364x + 0.5 \\ (2) \quad y &= f(x) = \begin{cases} 1, & Y \geq 0.5 \\ 0, & Y < 0.5 \end{cases} \end{aligned} (1)Y(2)y=0.1364x+0.5=f(x)={1,0,Y0.5Y<0.5

  • 第一步是找出f(x),也就是这里的Y
  • 第二步就是确定阈值,根据阈值来进行二次筛选

我们把Y带入原来的数据点,看一下效果:

xY(x)分布函数的值y(x)二值化之后的值实际y
-5-0.1800
-4-0.0500
-30.0900
-20.2300
-10.3600
10.6411
20.7711
30.9111
41.0511
51.1811

这么一看线性回归的效果好像还不错,但其实它的局限性还蛮大的。

1.6.4. 线性回归求解分类问题的局限性

线性回归的主要问题在于:样本量变大,准确率就会下降。
请添加图片描述

原本的数据中x的值仅在-5到5。而这时如果我们添加一个比较远的点,比如(50, 1),就会对线性回归计算出的线产生巨大的影响。

我们还是一样的把Y带入原来的数据点,看一下效果:

xY(x)分布函数的值y(x)二值化之后的值实际y
-50.3900
-40.4100
-30.4300
-20.4400
-10.4600
10.4901
20.5111
30.5211
40.5411
50.5511
501.2611
x = 1时,由于Y(x)的结果0.49,小于0.5,导致二值化之后y(x) = 0,但是实际情况是x = 1y = 1

1.6.5. 逻辑回归的原理

逻辑回归对于求解分类问题的第一步进行了优化:
( 1 ) Y = 1 1 + e − x ( 2 ) y = f ( x ) = { 1 , Y ≥ 0.5 0 , Y < 0.5 \begin{aligned} (1) \quad Y &= \frac{1}{1 + e^{-x}} \\ (2) \quad y &= f(x) = \begin{cases} 1, & Y \geq 0.5 \\ 0, & Y < 0.5 \end{cases} \end{aligned} (1)Y(2)y=1+ex1=f(x)={1,0,Y0.5Y<0.5
之所以叫做逻辑回归是因为第一步的这个函数叫做Sigmoid函数(逻辑函数),它将输入x映射到 (0,1)之间

它根据数据的特征或属性,计算其归属于某一类别的概率P(x),根据概率数值来判断其所属类别。

它的主要应用场景就是二分类问题(也就是只有两种可能性的问题)。

它的数学表达式是:
P ( x ) = 1 1 + e − x y = { 1 , P ( x ) ≥ 0.5 0 , P ( x ) < 0.5 \begin{aligned} P(x) &= \frac{1}{1 + e^{-x}} \\ y &= \begin{cases} 1, & P(x) \geq 0.5 \\ 0, & P(x) < 0.5 \end{cases} \end{aligned} P(x)y=1+ex1={1,0,P(x)0.5P(x)<0.5

  • y为类别结果
  • P为概率分布
  • x为特征值

它的效果如下:
请添加图片描述

如果我们使用逻辑函数作为Y

xY(x)使用逻辑函数y(x)二值化之后的值实际y
-50.0100
-40.0200
-30.0500
-20.1200
-10.2700
10.7311
20.8811
30.9511
40.9811
50.9911
501.0011
10001.0011

可以看到它并不会因为数据量增多而导致准确率下降。

逻辑回归只是用于解决分类问题的一种模型(你可以使用其它模型,只是效果可能没这么好)。其实它的思想与线性回归差不多,只不过换用了逻辑函数。

1.6.6. 利用逻辑函数解问题

我们就用逻辑回归解决一下本文开篇提出的那个问题:根据余额,判断小明是否会去看电影(余额-10、100的情况下)

只需要带入逻辑方程即可:


余额为-10的情况下:
P ( x = − 10 ) = 1 1 + e 10 = 4.5 × 1 0 − 5 < 0.5 P(x = -10) = \frac{1}{1 + e^{10}} = 4.5 \times 10^{-5} < 0.5 P(x=10)=1+e101=4.5×105<0.5
由于计算出的值小于0.5,所以会被二值化为0,也就是不会去看电影。


余额为100的情况下:
P ( x = 100 ) = 1 1 + e − 100 = 1 > 0.5 P(x = 100) = \frac{1}{1 + e^{-100}} = 1 > 0.5 P(x=100)=1+e1001=1>0.5
由于计算出的值大于0.5,所以会被二值化为1,也就是会去看电影。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词