神经网络基础-神经网络补充概念-14-逻辑回归中损失函数的解释

概念

逻辑回归损失函数是用来衡量逻辑回归模型预测与实际观测之间差异的函数。它的目标是找到一组模型参数,使得预测结果尽可能接近实际观测。

理解

在逻辑回归中,常用的损失函数是对数似然损失(Log-Likelihood Loss),也称为交叉熵损失(Cross-Entropy Loss)。它在分类问题中非常常见,特别适用于二分类问题。

公式

假设我们有一组训练样本 ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , … , ( x ( m ) , y ( m ) ) (x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), \ldots, (x^{(m)}, y^{(m)}) (x(1),y(1)),(x(2),y(2)),,(x(m),y(m)),其中 x ( i ) x^{(i)} x(i) 是输入特征, y ( i ) y^{(i)} y(i) 是对应的实际标签(0 或 1)。模型的预测结果为 y ^ ( i ) \hat{y}^{(i)} y^(i),它是由逻辑回归函数转换得到的: y ^ ( i ) = h θ ( x ( i ) ) = 1 1 + e − θ T x ( i ) \hat{y}^{(i)} = h_\theta(x^{(i)}) = \frac{1}{1 + e^{-\theta^T x^{(i)}}} y^(i)=hθ(x(i))=1+eθTx(i)1

对于每个样本,我们可以定义一个对数似然函数:
在这里插入图片描述
其中 m m m 是样本数量。

这个损失函数的意义是,当模型的预测结果与实际标签一致时,对数似然损失趋近于0。当模型的预测与实际不一致时,损失会逐渐增加。因此,优化模型的参数就是通过最小化这个损失函数,使得模型的预测结果尽可能接近实际标签。

逻辑回归损失函数的优化通常使用梯度下降等优化算法。通过迭代更新模型参数,最终使得损失函数达到最小值,从而得到能够对数据进行合理分类的逻辑回归模型。

代码实现

import numpy as np
from sklearn.model_selection import train_test_split# 生成模拟数据
np.random.seed(42)
m = 100
n = 2
X = np.random.randn(m, n)
X = np.hstack((np.ones((m, 1)), X))
theta_true = np.array([1, 2, 3])
y = (X.dot(theta_true) + np.random.randn(m) * 0.2) > 0# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化模型参数
theta = np.zeros(X_train.shape[1])# 定义sigmoid函数
def sigmoid(z):return 1 / (1 + np.exp(-z))# 定义损失函数
def compute_loss(X, y, theta):m = len(y)h = sigmoid(X.dot(theta))loss = (-1/m) * np.sum(y * np.log(h) + (1 - y) * np.log(1 - h))return loss# 定义梯度计算函数
def compute_gradient(X, y, theta):m = len(y)h = sigmoid(X.dot(theta))gradient = X.T.dot(h - y) / mreturn gradient# 执行梯度下降
learning_rate = 0.01
num_iterations = 1000for _ in range(num_iterations):gradient = compute_gradient(X_train, y_train, theta)theta -= learning_rate * gradient# 在测试集上计算损失
test_loss = compute_loss(X_test, y_test, theta)
print("测试集上的损失:", test_loss)

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

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

相关文章

ES:一次分片设计问题导致的故障

### 现象: 1. 单节点CPU持续高 2.写入骤降 3.线程池队列积压,但没有reject 4.使用方没有记录日志 ### 排查 1.ES监控 只能看到相应的结果指标,无法反应出原因。 2.ES日志:大量日志打印相关异常(routate等调用栈&a…

RabbitMq:Topic exchange(主题交换机)的理解和使用

RabbitMq:Topic exchange(主题交换机)的理解和使用 在RabbitMq中,生产者的消息都是通过交换机来接收,然后再从交换机分发到不同的队列中去,在分发的过程中交换机类型会影响分发的逻辑,下面主要讲解一下主题交换机。 ​ 主题交换…

渗透测试之逻辑漏洞

文章目录 一、支付漏洞1.修改附属值2.多重替换支付3.重复支付4.最小额支付5.最大值支付6.越权支付7.无限制试用8.多线程并发9.支付漏洞思路 二、密码找回漏洞1.本地验证绕过2.利用session重新绑定客户3.去掉验证参数绕过4.总结 三、短信验证码绕过1.短信验证码生命期限内可暴力…

【Java基础教程】(二十二)Java新特性篇 · 第二讲:foreach循环——概念及优缺点、使用方式及应用场景~

Java基础教程之新特性 foreach循环 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用及应用场景🌾 总结 1️⃣ 概念 Java的 foreach 特性最初出现在JDK 1.5中,也被称为“增强的for循环”。它的设计目的是提供一种简洁、易读的语法,用于遍历集合或数组…

一个WPF开发的、界面简洁漂亮的音频播放器

项目简介 这是一个基于C# WPF开发的,界面外观简洁大方,操作体验良好的音频播放器。 支持各种音频格式,包括:MP4、WMA、OGG、FLAC、M4A、AAC、WAV、APE 和 OPUS;支持标记、实时显示歌词等功能;支持换肤、…

深入解析:如何打造高效的直播视频美颜SDK

在当今数字化时代,视频直播已经成为人们交流、娱乐和信息传递的重要方式。然而,许多人在直播时都希望能够呈现出最佳的外观,这就需要高效的直播视频美颜技术。本文将深入解析如何打造高效的直播视频美颜SDK,以实现令人满意的视觉效…

【0815作业】搭建select的TCP客户端、poll客户端、tftp文件上传

IO多路复用(重点!!!) 进程中如果同时需要处理多路输入输出流,在使用单进程单线程的情况下,同时处理多个输入输出请求。在无法用多进程多线程,可以选择用IO多路复用;由于不…

6个主流的工业3D管道设计软件

3D 管道设计软件是大多数行业工程工作的主要部分,例如: 电力、石油和天然气、石化、炼油厂、纸浆和造纸、化学品和加工业。 全球各工程公司使用了近 50 种工厂或管道设计软件。 每个软件都有优点和缺点,包括价格点。 EPC 和业主部门当前的趋势…

会声会影和Pr哪个好?

会声会影是加拿大Corel公司制作的一款功能强大的视频编辑软件,正版英文名:Corel VideoStudio,具有图像抓取和编修功能,可以抓取,转换MV、DV、V8、TV和实时记录抓取画面文件,并提供有超过100 多种的编制功能…

MySQL卸载并重装指定版本

MySQL卸载并重装制定版本 学习新的项目,发现之前的Navicat已经失去了与现有MySQL的链接,而且版本也不适合,为了少走弯路,准备直接重装相应版本的MySQL 卸载现有MySQL 停止windows的MySQL服务,【windowsR】打开运行框…

Java性能分析中常用命令和工具

当涉及到 Java 性能分析时,有一系列强大的命令和工具可以帮助开发人员分析应用程序的性能瓶颈、内存使用情况和线程问题。以下是一些常用的 Java 性能分析命令和工具,以及它们的详细说明和示例。 以下是一些常用的性能分析命令和工具汇总: …

如何使用ChatGPT创建个性化的健身锻炼计划

ChatGPT广泛应用于各个行业,健身也不例外。 ChatGPT 在健身领域的一个常用案例是创建个性化的锻炼计划。 在要求 ChatGPT 创建锻炼计划时,简单地输入自己的目标和当前的健身水平是一个很好的开始。完成此操作后,你还可以使用其他提示和措施来…

Redis数据结构之String

String 类型是 Redis 的最基本的数据类型,一个 key 对应一个 value,可以理解成与Memcached一模一样的类型。 String 类型是二进制安全的,意思是 Redis 的 String 可以包含任何数据,比如图片或者序列化的对象,一个 Redi…

如何编写一个通用的函数?

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 金句分享:…

安防监控/视频集中存储/云存储平台EasyCVR v3.3增加首页告警类型

安防监控/视频集中存储/云存储EasyCVR视频汇聚平台,可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等…

湘潭大学 湘大 XTU OJ 1055 整数分类 题解(非常详细)

链接 整数分类 题目 Description 按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说24,246&#…

Nginx的介绍

本资料转载于传智教育-解锁你的IT职业薪未来,仅用于学习和讨论,如有侵权请联系 视频地址:04-Nginx的优点_哔哩哔哩_bilibili 资源文档:链接:https://pan.baidu.com/s/1RlFl92FdxRUqc858JSxPSQ 提取码:12…

【Vue】全家桶之Axios

文章目录 概述axios特点安装关于 ajax、fetch、axiosAxios APIAxios 实例请求配置响应结构默认配置拦截器错误处理取消请求取消请求请求体编码 概述 Axios是基于promise的网络请求库,可以在nodejs和浏览器中运行,是isomorphic的,意思就是同一…

【仿写tomcat】四、解析http请求信息,响应给前端,HttpServletRequest、HttpServletResponse的简单实现

思考 在解析请求之前我们要思考一个问题,我们解析的是其中的哪些内容? 对于最基本的实现,当然是请求类型,请求的url以及请求参数,我们可以根据请求的类型作出对应的处理,通过url在我们的mapstore中找到se…

使用struct解析通达信本地Lday日线数据

★★★★★博文原创不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习编程小技巧,喜欢的老铁可以多多帮忙点赞,小红牛在此表示感谢。★★★★★ 在Python中,struct模块提供了二进制数据的打包和解包…