逻辑回归模型(非回归问题,而是解决二分类问题)

一、Sigmoid激活函数:

Sigmoid函数是构建逻辑回归模型的重要激活函数,如下图所示。
在这里插入图片描述

  • 分类问题目标是将模型的输出结果控制在[0,1]的范围内,当模型输出结果<0.5,默认预测结果为0;当模型输出结果>0.5,默认预测结果为1。
  • 二分类问题的解决思路是:通过构建逻辑回归模型f将二分类问题的输入x映射到Sigmoid函数的输入z上计算输出g,再根据g的范围(是否大于0.5)获得逻辑回归模型的结果(即二分类问题的结果)。
  • 函数的定义域∈R,值域∈[0,1],当输入z<0时,Sogmoid函数输出结果g<0.5,默认为结果是0,构成二分类问题的第一个类别。当输入z>0时,Sogmoid函数输出结果g>0.5,默认为结果是1,构成二分类问题的第二个类别

二、逻辑回归介绍:

逻辑回归用来解决二分类问题。分类问题即模型的输出结果只有有限个(回归问题则是无限个),二分类问题即模型的输出结果只有两个。

在回归问题的经典案例“肿瘤预测案例”中,使用肿瘤尺寸size特征预测该肿瘤是否是恶性肿瘤,输出结果只有两种:是(1)或否(0)。
在这里插入图片描述
这时使用线性回归模型就很难拟合训练集 (线性回归解决的是回归问题,而肿瘤预测案例是一个分类问题,准确说是二分类问题),因此提出了逻辑回归思想。
在这里插入图片描述
逻辑回归模型(解决分类问题):输入特征或特征集X并输出0~1之间的数字,其中拟合曲线通过Sogmoid函数来构造。具体构造流程如下图:
在这里插入图片描述
在这里插入图片描述

  • 第一行解释:逻辑回归模型f的构造同线性回归,通过输入特征集X输出预测结果f,不同点在于f取值范围∈[0,1]
  • 第二三四行解释:之前我们介绍了Sigmoid函数的输出g可以很好的解决二分类问题,因此我们巧妙地使用了Sigmoid函数来构建逻辑回归模型f解决二分类问题,通过将输入特征集X使用线性回归或多项式回归映射到Sigmoid函数的输入z实现Sigmoid函数的输出然后根据Sigmoid函数输出结果是否大于0.5来计算逻辑回归模型的输出f(0或1),得到二分类问题的结果。
  • 第五行解释:上述思想整合一下即可得出逻辑回归模型f,其中模型的输入是特征集X,输出是分类的预测结果0或1。
  • 第六行解释:当逻辑回归模型的输出结果大于等于0.5时,预测值y^为1,用上文的例子来讲就是该肿瘤是恶性肿瘤;当逻辑回归模型的输出结果小于等于0.5时,预测值为0,用上文的例子来讲就是该肿瘤不是恶性肿瘤。

三、决策边界

从上文不难得到,当Sigmoid函数的输入z大于等于0时,即特征集X到z的映射z=wx+b大于等于0时,模型的输出结果是1;当Sigmoid函数的输入z小于0时,即特征集X到z的映射z=wx+b小于0时,模型的输出结果是0。
这是我们可以提出决策边界的概念:使得模型输入X到Sigmoid函数输入z的映射等于0的方程叫做决策边界。

以上述肿瘤预测模型为例,模型输入X到Sigmoid函数输入z的映射为z=wx+b,那么决策边界就是wx+b=0。

下面让我们用图像来展示决策边界的意义:

  • 例1:映射为线性函数
    在这里插入图片描述
    上图展示了训练集中特征x1、x2不同取值时标签的真实值,其中圈代表该样本分类结果为0,叉代表该样本分类结果为1。

    逻辑回归模型如上图,其中模型输入X到Sigmoid函数输入z的映射为z=w1x1+w2x2+b,则决策边界为w1x1+w2x2+b=0。若模型训练结果为w1=1,w2=1,b=-3时,决策边界为x1+x2-3=0,决策边界的函数图像如上图所示,可以看到,如果样本的特征位于决策边界左侧,逻辑回归预测时0,反之为1,这就是决策边界的图像意义。

  • 例2:映射为多项式函数
    在这里插入图片描述
    模型输入X到Sigmoid函数输入z的映射为多项式函数,决策边界如图,可以看到,模型训练完成后,参数值确定了,决策边界也立即就确定了,这时样本的特征相对决策边界的位置决定了该样本的预测结果。

四、逻辑回归模型训练过程:

其实和线性回归训练过程一样,只不过是待训练模型(函数)不同而已。

1.训练目标:

在这里插入图片描述

2.梯度下降调整参数:

在这里插入图片描述

相关推荐

  1. BERT问答模型回答问题

    2024-07-09 17:38:11       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 17:38:11       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 17:38:11       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 17:38:11       57 阅读
  4. Python语言-面向对象

    2024-07-09 17:38:11       68 阅读

热门阅读

  1. 代码随想录算法训练营:21/60

    2024-07-09 17:38:11       33 阅读
  2. Vue3 对于内嵌Iframe组件进行缓存

    2024-07-09 17:38:11       25 阅读
  3. Kafka 面试题指南

    2024-07-09 17:38:11       36 阅读
  4. vue3 插件

    2024-07-09 17:38:11       27 阅读
  5. 【PyQt5】

    2024-07-09 17:38:11       28 阅读
  6. 为啥AI要卷应用?

    2024-07-09 17:38:11       25 阅读
  7. TensorFlow在数据分析与挖掘中的应用:技术与实践

    2024-07-09 17:38:11       31 阅读