吴恩达机器学习-可选实验室:逻辑回归(Logistic Regression))

在这个不评分的实验中,你会探索sigmoid函数(也称为逻辑函数)探索逻辑回归;哪个用到了sigmoid函数

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函数

正如在讲座视频中所讨论的,对于分类任务,我们可以从线性函数开始回归模型fw,b(x0) = w·x +b,在给定x的情况下预测y。然而,我们希望我们的分类模型的预测在0到1之间,因为我们的输出变量y是0或1。这可以通过使用“sigmoid函数”来实现,该函数将所有输入值映射到0到1之间的值。我们来实现sigmoid函数,自己看看。

Sigmoid函数的公式

sigmoid函数的公式如下

g(z)=1/(1+e^-z)

在逻辑回归的情况下,z (sigmoid函数的输入)是线性回归模型的输出。

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

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

# 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)

在这里插入图片描述
signid函数是用python实现的,如下面的单元格所示。

def sigmoid(z):"""Compute the sigmoid of zArgs: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,右列中的值是sigmoid (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趋于负值时,sigmoid函数趋于0,当z趋于正值时,sigmoid函数趋于1。

逻辑回归

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

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’或w.x +b。它与线性回归模型中的直线不匹配。通过应用阈值进一步改进这些结果。
  • 勾选“切换0.5阈值”上的复选框,以显示应用阈值时的预测结果。
  • 这些预测看起来不错。预测与数据相符
  • 现在,在大肿瘤大小范围内(接近10)添加进一步的数据点,并重新运行线性回归。
  • 与线性回归模型不同,该模型持续做出正确的预测

(1)
在这里插入图片描述
(2)在这里插入图片描述
(3)
在这里插入图片描述

恭喜

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

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

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

相关文章

2024最新版使用PyCharm搭建Anaconda

2024最新版使用PyCharm搭建Anaconda 因为pycharm自带的包不全,或者下载的时候比较慢,所以我们直接用anaconda的包,毕竟我们以后还会学到很多的包,不多说,直接开干! 一、下载Pycharm、Anacoda pycharm中文网…

信息系统三级等保安全解决方案(46页Word)

1、系统定级与安全域 2、实施方案设计 3、安全防护体系建设规划 软件开发全系资料分享下载:软件项目开发全套文档下载_软件开发文档下载-CSDN博客

安全防御第七次作业

拓扑图如图所示: 问题:在FW7和FW8之间建立一条IPSEC通道保证10.0.2.0/24网段 可以正常访问到192.168.1.0/24 注:基础配置我在此省略了 一、NAT配置 FW4: FW6: 二、在FW4上做服务器映射 三、配置IPSEC FW5&#xff…

MessAuto-让验证码提取更加丝滑

专注于web漏洞挖掘、内网渗透、免杀和代码审计,感谢各位师傅的关注!网安之路漫长,与君共勉! MessAuto MessAuto 是一款 macOS 平台自动提取短信和邮箱验证码到粘贴板的软件,由Rust开发,适用于任何APP 下面展…

这个简历你给几分?

求大家给给建议😭😭 自己算法几乎没刷过,项目也不咋好 打算21号开始投日常实习 好慌

MySQL将两条记录根据相同条件合并

知识点:在MySQL中,可以使用GROUP BY子句和聚合函数如CONCAT或CONCAT_WS来将多条记录基于相同条件合并为一条记录 【主要是GROUP_CONCAT这个函数的运用】 例如将员工信息表中相同门店的员工信息合并为一条记录 MySQL语句如下: SELECT dept_…

Flask python 开发篇:项目布局

一、背景简介 Flask应用程序可以像单个文件一样简单。就像上一篇简单实现一个接口一样,所有的东西都在一个python文件内; 然而,当项目越来越大的时候,把所有代码放在单个文件中就有点不堪重负了。 Python 项目使用 包 来管理代码…

windows server 2019 服务器配置的方法步骤

一、启用远程功能二、测试三、解决多用户登录的问题 一、启用远程功能 右键点击【此电脑】–【属性】,进入“【控制面板\系统和安全\系统】”,点击-【远程设置】(计算机找不到就使用【winE】快捷键) 2、在“远程桌面”下方,点击【允许远程连…

【MySQL】1.在Centos 7上如何卸载/安装/配置MySQL(保姆级教程)

MySQL 在 Centos 7环境安装 说明: • 安装与卸载中,用户全部切换成为root,⼀旦安装,普通用户能使用的 • 初期练习,mysql不进行用户管理,全部使用root进行,尽快适应mysql语句,后⾯学…

联想小新电脑出现蓝屏问题解决(暂时没有解决)

电脑出现蓝屏,如下 搜索FAULTY_HARDWARE_CORRUPTED_PAGE寻找解决方案,找到较为靠谱的文章:记录蓝屏问题FAULTY_HARDWARE_CORRUPTED_PAGE 根据文章提示找到官方解答:Bug 检查 0x12B:FAULTY_HARDWARE_CORRUPTED_PAGE&…

路由器动态路由配置

本博客为观看湖科大的教书匠系列计算机网络视频的学习笔记。 静态路由选择动态路由选择采用人工配置的方式给路由器添加网络路由、默认路由和特定主机路由等路由条目。路由器通过路由选择协议自动获取路由信息。静态路由选择简单、开销小,但不能及时适应网络状态(流…

[VulnHub靶机渗透] Nullbyte

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

【MATLAB第98期】基于MATLAB的MonteCarlo蒙特卡罗结合kriging克里金代理模型的全局敏感性分析模型(有目标函数)

【MATLAB第98期】基于MATLAB的Monte Carlo蒙特卡罗结合kriging克里金代理模型的全局敏感性分析模型(有目标函数)【更新中】 PS:因内容涉及较多,所以一时半会更新不完 后期会将相关原理,以及多种功能详细介绍。 麻烦点赞收藏&#…

多核多cluster多系统之间缓存一致性概述

目录 1.思考和质疑2.怎样去维护多核多系统缓存的一致性2.1多核缓存一致性2.2多Master之间的缓存一致性2.3dynamIQ架构同一个core中的L1和L2 cache 3.MESI协议的介绍4.ACE维护的缓存一致性5.软件定义的缓存和替换策略6.动图示例 本文转自 周贺贺,baron,代…

02.JavaScript的运算符和语句

JavaScriptt的运算符和语句 一.运算符 算术运算符 数字是用来计算的,比如:乘法 * 、除法 / 、加法 、减法 - 等等,所以经常和算术运算符一起。 算术运算符:也叫数学运算符,主要包括加、减、乘、除、取余&#xff…

搜索组件的编写与数据的联动

src\components\SearchInput\index.vue 搜索组件编写 <template><div class"search-wrap"><input type"text":placeholder"placeholder":maxlength"maxlength":value"inputValue"input"searchData($ev…

动态代理详解(原理+代码+代码解析)

动态代理 1.什么是动态代理&#xff1f; 动态代理是一种在运行的时候动态的生成代理对象的技术。它在不改变原始类的情况下&#xff0c;对原始类的方法进行拦截或者增强。 2.动态代理可以实现的功能&#xff1f; 使用动态代理可以实现如下常用功能&#xff1a; 1.AOP&#x…

FPGA-AXI4接口协议概述

假设我们要传一帧1080P的图片到显示屏显示&#xff0c;那么需要多大的储存空间呢&#xff1f; 一帧1080P的RGB565图像数据需要1920*1080*1633.1776Mb 存储空间 下图是ZYNQ-7000系列中Block RAM的大小&#xff1a; 可以看到最大存储空间的BRAM都不能存储一帧图片&#xff0c;那…

深入理解Vue.js中的nextTick:实现异步更新的奥秘

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

javascript实现解决浮点数加减乘除运算误差丢失精度问题【收藏点赞】

相信程序都会遇到这样的问题&#xff0c;有时需要在js上做运算合计等浮点数加减乘除&#xff0c;但会有些浮点数会有误差问题。下面用js来解决浮点数加减乘除运算误差丢失精度这个请 【收藏点赞】。 是程序都会在浮点数加减乘除上有误差问题&#xff0c;这是计算机二进制生成的…