吴恩达机器学习-C1W3L2-逻辑回归之S型函数

news2024/9/23 7:21:35

可选实验:逻辑回归

在这个不评分的实验中,你会

  • 探索sigmoid函数(也称为logistic函数)
  • 探索逻辑回归;哪个用到了s型函数
import numpy as np
%matplotlib widget
import matplotlib.pyplot as plt
from plt_one_addpt_onclick import plt_one_addpt_onclick
from lab_utils_common import draw_vthresh
plt.style.use('./deeplearning.mplstyle')

Sigmoid或Logistic函数

正如讲座视频中所讨论的,对于分类任务,我们可以从使用线性回归模型 f w , b ( x ( i ) ) = w ⋅ x ( i ) + b f_{\mathbf{w},b}(\mathbf{x}^{(i)}) = \mathbf{w} \cdot \mathbf{x}^{(i)} + b fwb(x(i))=wx(i)+b开始,来预测给定 x x x y y y
-然而,我们希望我们的分类模型的预测在0和1之间,因为我们的输出变量 y y y是0或1。
-这可以通过使用“sigmoid函数”来完成,该函数将所有输入值映射到0到1之间的值。
我们来实现s型函数,自己看看。
在这里插入图片描述

Sigmoid函数的公式

s型函数的公式如下
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1
在逻辑回归的情况下,z (sigmoid函数的输入)是线性回归模型的输出。

  • 单个示例时,“ z z z”为标量。
  • 在多个示例的情况下, z z z可能是由 m m m值组成的向量,每个示例一个。
  • sigmoid函数的实现应该涵盖这两种可能的输入格式。让我们在Python中实现它。

NumPy有一个名为exp()的函数,它提供了一种方便的方法来计算输入数组 z 中所有元素的指数( e z e^{z} ez)。
它还可以使用单个数字作为输入,如下所示。

# Input is an array. 
input_array = np.array([1,2,3])
exp_array = np.exp(input_array)

print("Input to exp:", input_array)
print("Output of exp:", exp_array)

# Input is a single number
input_val = 1  
exp_val = np.exp(input_val)

print("Input to exp:", input_val)
print("Output of exp:", exp_val)

sigmoid函数是用python实现的,如下面的单元格所示。

def sigmoid(z):
    """
    Compute the sigmoid of z

    Args:
        z (ndarray): A scalar, numpy array of any size.

    Returns:
        g (ndarray): sigmoid(z), with the same shape as z
         
    """

    g = 1/(1+np.exp(-z))
   
    return g

让我们看看对于不同的z值这个函数的输出是什么

# Generate an array of evenly spaced values between -10 and 10
z_tmp = np.arange(-10,11)

# Use the function implemented above to get the sigmoid values
y = sigmoid(z_tmp)

# Code for pretty printing the two arrays next to each other
np.set_printoptions(precision=3) 
print("Input (z), Output (sigmoid(z))")
print(np.c_[z_tmp, y])

左列的值为z,右列的值为s型(z)。如您所见,sigmoid的输入值范围从-10到10,输出值范围从0到1。
现在,让我们尝试使用matplotlib库绘制这个函数。

# Plot z vs sigmoid(z)
fig,ax = plt.subplots(1,1,figsize=(5,3))
ax.plot(z_tmp, y, c="b")

ax.set_title("Sigmoid function")
ax.set_ylabel('sigmoid(z)')
ax.set_xlabel('z')
draw_vthresh(ax,0)

如你所见,当z趋于负值时,s型函数趋于0,当z趋于正值时,s型函数趋于1。

逻辑回归

逻辑回归模型将s型曲线应用于我们熟悉的线性回归模型,如下图所示:
f w , b ( x ( i ) ) = g ( w ⋅ x ( i ) + b ) (2) f_{\mathbf{w},b}(\mathbf{x}^{(i)}) = g(\mathbf{w} \cdot \mathbf{x}^{(i)} + b ) \tag{2} fw,b(x(i))=g(wx(i)+b)(2)
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1

在这里插入图片描述
让我们将逻辑回归应用到肿瘤分类的分类数据示例中。
首先,加载示例和参数的初始值。

x_train = np.array([0., 1, 2, 3, 4, 5])
y_train = np.array([0,  0, 0, 1, 1, 1])

w_in = np.zeros((1))
b_in = 0

尝试以下步骤:

  • 点击“运行逻辑回归”以找到给定训练数据的最佳逻辑回归模型
    • 注意所得模型与数据拟合得很好。
    • 注意,橙色线是’ z z z’或 w ⋅ x ( i ) + b \mathbf{w} \cdot \mathbf{x}^{(i)} + b wx(i)+b。它与线性回归模型中的直线不匹配。
      通过应用“阈值”进一步改进这些结果。
  • 勾选“切换0.5阈值”上的框,以显示如果应用阈值的预测。
    • 这些预测看起来不错。预测与数据相符
    • 现在,在大肿瘤大小范围内(接近10)添加进一步的数据点,并重新运行线性回归。
    • 与线性回归模型不同,该模型持续做出正确的预测
plt.close('all') 
addpt = plt_one_addpt_onclick( x_train,y_train, w_in, b_in, logistic=True)

恭喜

你已经探索了s型函数在逻辑回归中的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1966749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java远程调试

java远程调试 idea2024创一个Spring Web项目springdemo1 使用maven-assembly-plugin插件打包成JAR文件 pom.xml参考如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi&quo…

【C#之WPF,给Border设置背景图片,代码运行后图片无法显示】

C#之WPF&#xff0c;给Border设置背景图片&#xff0c;代码运行后图片无法显示 方案 方案 选中你的图片找到属性&#xff1b; 这两个都改一下&#xff1b; 改好之后在运行就可以正常显示了。

uni-app中使用支付宝扫码插件并且在真机调试时使用(详细教程)

前言&#xff1a;uni-app自带的扫码api 识别不灵敏&#xff0c;每次都得扫很长时间且不断调整才能扫出来码&#xff0c;所以决定使用支付宝扫码插件&#xff0c;官方插件地址&#xff1a;https://ext.dcloud.net.cn/plugin?id2636#detail 使用步骤: 1、下载插件到项目中 2、…

ai绘画软件哪个好?5个工具让你绘图快人一步

最近&#xff0c;沉浸式感受火把节的体验在网上引起了广泛关注&#xff0c;成为了热门话题。然而&#xff0c;我们这些忙碌的打工人&#xff0c;因为工作繁忙&#xff0c;只能羡慕地看着别人分享的欢乐瞬间。 别灰心&#xff01;谁说我们不能以另一种方式参与这场盛宴呢&#…

4款免费且安全:常用的PDF转Word在线转换工具推荐

现在办公越来越离不开电脑了&#xff0c;PDF文件和Word文档来回转换的需求也越来越大。作为一个天天跟文件打交道的上班族&#xff0c;我特别明白找个好用、靠谱的PDF转Word在线转换工具有多重要。今儿个&#xff0c;给大家说说五个免费的转换工具&#xff0c;都是我试过觉得挺…

SPSSAU | CatBoost模型原理及案例实操分析

CatBoost 是一种基于梯度提升的决策树(Gradient Boosting Decision Trees, GBDT)算法&#xff0c;专门优化了处理分类特征和序列数据的能力。算法步骤如下&#xff1a; 第一&#xff1a;生成初始模型&#xff0c;从简单的模型开始&#xff0c;通常是所有目标值的平均值&#x…

telnet与ping:测试IP及端口连通性

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享&#xff0c;包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 python使用API实现…

压路机土方压实摊铺精确施工引导系统

整体架构 一、土方压实摊铺工程现状 二、整体介绍 1、在施工现场利用 GNSS 定位设备终端、振动传感器、温度传感器&#xff0c;实现对施工机械的位置、运行状态实时监测&#xff0c;实现底层数据的多参数、多种类高效采集。 2、本系统基于卫星差分定位技术&#xff0c;通过与…

JNPF全新V5.0版本!重磅升级——协同办公篇

尊敬的JNPF用户们&#xff1a; 我们非常高兴地宣布&#xff0c;经过团队数月的辛勤努力和不断的技术创新&#xff0c;JNPF快速开发平台终于迎来了里程碑式的全新升级——V5.0版本&#xff01;这一版本的更新发布&#xff0c;不仅代表着我们技术实力的进一步提升&#xff0c;是…

点线面的智慧:转转JTS技术如何塑造上门履约地理布局

1 引言 如上图所示&#xff0c;在转转上门履约的场景中&#xff0c;上门服务的覆盖区域是在地图上画电子围栏来划定的。这就涉及到一些几何图形的操作和空间关系判断&#xff0c;其中最核心问题就是要解决如何判断位置是否在上门覆盖范围内。下面介绍下 JTS&#xff0c;以及如何…

微服务实战系列之玩转Docker(八)

前言 “Compose”一词的原意是创作、组成、构成&#xff08;一个整体&#xff09;&#xff0c;那么“Docker Compose”一词可以理解为一组docker。今天博主着重介绍一下这个“容器导演” —— 一个docker自带的容器管理工具。 Docker Compose入门 1. 定义 Docker Compose is …

这八本大模型书籍看完你就是LLM大师,非常详细收藏我这一篇就够了

如果你想深入了解大模型领域&#xff0c;无论是为了学术研究还是实际应用&#xff0c;选择合适的书籍是非常重要的。以下是精选的八本大模型相关书籍&#xff0c;涵盖了从基础理论到高级实践的内容&#xff0c;可以帮助你构建全面的知识体系。 《大模型应用开发极简入门》 作者…

PyTorch图像分割的基本形式

【图书推荐】《PyTorch深度学习与计算机视觉实践》-CSDN博客 图像分割是计算机视觉领域中的一个重要任务&#xff0c;旨在将图像划分为多个不同的区域或对象。简单来说&#xff0c;图像分割就是将图像中的像素或区域按照某种规则或标准进行分类&#xff0c;使得同一区域内的像…

如何更改软件ip地址:方法详解

在数字化时代&#xff0c;网络连接已成为我们日常生活与工作中不可或缺的一部分。无论是日常娱乐、办公协作&#xff0c;还是商业运营&#xff0c;软件应用都需要通过IP地址与互联网建立联系。然而&#xff0c;在某些特定情况下&#xff0c;我们可能需要更改软件的IP地址&#…

【Vulnhub系列】Vulnhub Lampiao-1 靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub Lampiao-1靶场渗透 原文转载已经过授权 原文链接&#xff1a;Lusen的小窝 - 学无止尽&#xff0c;不进则退 (lusensec.github.io) 一、主机发现 二、端口扫描 三、web框架 四、web渗透 1、信息收集 2、目录扫描 获得版本信息7.56 3、获取shell …

AI时代:成为AI产品经理的方法

一、非技术背景的人员如何转型成为AI产品经理 ​ 产品经理是一个非常重要的岗位&#xff0c;但是高校并没有培养产品经理特别是 AI 产品经理的专业课程&#xff0c;这方面的书籍也非常稀缺。非技术背景的人员转型成为 AI 产品经理是未来一段时间内的一种趋势&#xff0c;这里主…

Nginx 反向代理https域名接口的注意事项

网络环境条件及实际调用需求如下图所示&#xff1a; 如图&#xff0c;要点如下&#xff1a; 应用实际请求的协议是 http&#xff0c;而通过 nginx 反向代理的最终接口是 https应用实际请求的域名是 mynginx.com&#xff0c;而通过 nginx 反向代理的最终接口域名是 api.weixin.…

【虚拟化】KVM概念和架构

目录 一、什么是KVM&#xff1f; 二、KVM的功能 2.1 主要的功能 2.2 其它功能 三、KVM核心组件及作用 四、KVM与VMware的优势 五、KVM架构 六、qemu介绍 七、创建虚拟机流程 一、什么是KVM&#xff1f; Kernel-based Virtual Machine的简称&#xff0c;KVM 是基于虚拟…

CentOS配置NTP服务

更改配置文件 [rootController ~]# vim /etc/chrony.conf 重启服务并设置为开机自启动 [rootController ~]# systemctl restart chronyd.service [rootController ~]# systemctl enable chronyd.service 在另一台CentOS测试 更改配置文件 [rootCompute ~]# vim /etc/chron…

开放式耳机推荐性价比排行榜!公认口碑最好的型号推荐

随着生活的提高&#xff0c;耳机在近几年来一直受到很多用户的喜欢&#xff0c;也逐渐成为大家生活中的必需品&#xff0c;我使用过的耳机也有好几十款了&#xff0c;大部分都因为是入耳式耳机佩戴久了无法忍受酸痛感&#xff0c;有些不入耳的耳机戴久了也会有一种无法形容的不…