【公式】逻辑回归的损失函数是什么

目录

一、逻辑回归简介

二、逻辑回归模型的损失函数

2.1 损失函数与其意义

2.2 逻辑回归的损失函数

2.3 从交叉熵角度理解逻辑回归的损失函数

2.4 从对数似然角度推导逻辑回归的损失函数

三、逻辑回归损失函数的梯度

3.1 逻辑回归损失函数的梯度公式

3.2 用梯度下降法实现逻辑回归的求解


   

本文部分图文借鉴自《老饼讲解-机器学习》

一、逻辑回归简介

逻辑回归模型是机器学习中二分类模型中的经典,它的意义在于它能够解决二分类问题,例如判断一个人是否患有某种疾病,或者预测一个事件是否发生等。它是一种广义的线性回归分析模型,推导过程和计算方式类似于回归分析,但实际上主要是用来解决二分类问题。此外,逻辑回归模型还可以处理多分类问题,例如根据多个特征预测一个人所属于的类别等。

逻辑回归模型最终输出属于类别1的概率,它的模型表达式如下:

二、逻辑回归模型的损失函数

2.1 损失函数与其意义

在机器学习和优化问题中,损失函数(或目标函数)具有重要的意义。它用于衡量模型预测结果与实际结果之间的差异,从而反映模型的性能和准确度。

损失函数的目标是最小化预测结果与实际标签之间的差异。具体来说,它通过对模型的参数进行优化,使得模型的预测结果更接近于实际的观测结果。如果模型的预测结果与实际观测结果相差较大,那么损失函数的值就会较大;反之,如果预测结果与实际观测结果相差较小,那么损失函数的值就会较小。

通过最小化损失函数,我们可以找到一组最优的模型参数,使得模型能够更好地拟合训练数据,提高模型的准确度和泛化能力。因此,损失函数在逻辑回归模型中具有重要的意义,它是评估模型性能和指导模型优化的关键指标。

2.2 逻辑回归的损失函数

对于逻辑回归模型,损失函数是用来衡量模型预测概率与实际标签之间的差距的。在二分类问题中,逻辑回归模型的预测结果通常被解释为概率值,表示样本属于正类的概率。当这个概率值越接近于1时,表示模型预测样本为正类的可能性越大;反之,当概率值越接近于0时,表示模型预测样本为负类的可能性越大。

在逻辑回归中,常用的损失函数是对数似然损失(Log-Likelihood Loss),也称为交叉熵损失(Cross-Entropy Loss)。逻辑回归的损失函数如下:

2.3 从交叉熵角度理解逻辑回归的损失函数

交叉熵损失函数的计算基于概率分布之间的差异。在分类问题中,模型的预测结果通常是一个概率分布,表示每个类别上的预测概率。交叉熵损失函数通过比较模型预测的概率分布与实际的标签分布之间的差异来计算损失值。

从交叉熵角度理解逻辑回归的损失函数几乎不需要推导过程,但需要对熵及交叉熵的意义较为熟悉,可以参考文章《老饼讲解|【逻辑回归】逻辑回归损失函数交叉熵形式的理解》 

2.4 从对数似然角度推导逻辑回归的损失函数

对数似然损失函数是一种损失函数,主要用于评估分类器的概率输出。它是在概率估计上定义的,通过惩罚错误的分类来实现对分类器准确度的量化。最小化对数似然损失基本等价于最大化分类器的准确度。对数似然损失函数在机器学习和深度学习中广泛应用,特别是在分类问题中,可以有效地衡量模型预测结果的准确性。

从对数似然角度推导逻辑回归的损失函数时,推导思路流程如下:

模型对单个样本评估正确的概率为:

 

上式等价于:


从而整体样本评估正角的概率为:

最大化总概率(上式),即最小化L=-\text{ln}(P_{RightTotal}),对其进行化简后就可以得到逻辑回归的操作函数,如下

相关细节过程可参考《老饼讲解|【推导】逻辑回归损失函数推导过程》

三、逻辑回归损失函数的梯度

3.1 逻辑回归损失函数的梯度公式

逻辑回归损失函数的意义主要用于求解逻辑回归模型中的参数,通常使用梯度下降等相关算法来进行求解,因此需要算出逻辑回归损失函数的梯度。

逻辑回归损失函数的梯度公式如下:

3.2 用梯度下降法实现逻辑回归的求解

根据以上公式,就可以使用梯度下降算法来求解逻辑回归模型中的参数。

逻辑回归的梯度下降求解方法可以分为以下几个步骤:

1.初始化参数:选择一个初始的参数向量,例如随机初始化。
2.计算损失:根据当前参数计算逻辑回归的损失函数值。
3.计算梯度:根据损失函数计算每个参数对应的梯度。
4.更新参数:根据梯度的大小,更新每个参数的值。
重复步骤2-4直到收敛或达到预设的最大迭代次数。
在具体实现中,逻辑回归的损失函数通常是对数似然损失函数,而梯度下降算法则是通过迭代更新参数来最小化损失函数。每次迭代中,根据当前的参数计算每个样本的预测概率和实际标签的对数似然损失,然后对损失函数求梯度并更新参数。这个过程一直重复,直到损失函数的值收敛或达到预设的最大迭代次数。

下面是python的实现代码示例:

# -*- coding: utf-8 -*-
"""
梯度下降求解逻辑回归
"""
from sklearn.datasets import load_breast_cancer
import numpy as np
#----数据加载------
data = load_breast_cancer()
X    = data.data[:,4:8]
y    = data.target

#-----给x增加一列1---------
xt = np.insert(X, X.shape[1], 1, axis=1)

#-----梯度下降求解w---------------
np.random.seed(888)             # 设定随机种子,以确保每次程序结果一次
w = np.random.rand(xt.shape[1]) # 初始化
for i in range(10000):
    p = 1/(1+np.exp(-xt@w)) #计算p
    w = w - 0.01*(xt.T@(p-y)) # 往负梯度方向更新w
p = 1/(1+np.exp(-xt@w))  # 最终的预测结果
print("参数w:"+str(w))

运行后输出结果如下:
 参数w:[  7.16215375  14.98708501 -16.84689114 -73.92486786   3.38331608]


如果觉得本文有帮助,点个赞吧!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

家用洗地机希亦、追觅和添可哪款好用?测评PK谁是清洁之王

对于上班族来说,时间非常宝贵,打扫卫生就成为了一件比较痛苦的事情。现在的都市上班族都会寄托于智能家电。在当前市场上,洗地机已成为家庭清洁的面部工具。洗地机是一种高效的清洁设备,以其自动化、高效率的清洁功能,…

我想涨工资,请问测试开发该怎么入门?

我是测试开发工程师!欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以) 我几乎是靠这套方法,从一个只会功能测试的小白,到成为测试开发工程师的。 别急,先慢慢看,只要按照下面的流程走一遍…

Elastic Support Hub 转向语义搜索

作者:Chris Blaisure 我们很高兴与大家分享 Elastic Support Hub 最近的增强功能:它现在由语义搜索提供支持! 但在我们更详细地了解对 Elastic Support Hub 所做的更改及其对客户的影响之前,我们需要花点时间解释语义搜索的概念&…

java死锁的成因和解决方案

一、什么是死锁? 在Java中,死锁是指两个或多个线程互相持有对方所需要的锁,并且在无法继续执行的情况下永久地等待对方释放锁。这种情况下,所有涉及的线程都无法继续执行,程序被卡住,无法正常终止。 死锁通…

Question 1----dlib问题

复现代码时,在环境里边导入dlib包时一直出现setup.py运行失败,查找网上一些解决方法,使用whl文件本地导入 仍然不能解决,通过向师兄请教,成功解决问题。 首先需要先安装两个库:(已经安装好了VS…

pyside/qt03——人机协同的编程教学—直接面向chatGPT实战开发(做中学,事上练)

先大概有个草图框架,一点点丰富 我纠结好久,直接用Python写UI代码 还是用designer做UI 再转Python呢, 因为不管怎么样都要转成Python代码, 想了想还是学一下designer吧,有个中介,有直观理解。 直接这样也可…

“福利”还是“陷阱”?公司给员工放假3个月引发劳动权益争议

近日,广东佛山一家玻璃制造公司的长达3个月放假通知引发广泛关注。这一决策引发了社会对员工福利和公司经营平衡的深入思考。公司表示,此次决策是为了维修老化设备,但随之而来的疑虑则主要集中在员工的收入和劳动权益问题上。 公司表示&…

Java线程池—附阿里巴巴Java开发手册强制规范要求

文章目录 一、线程池概述二、创建线程池三、线程池执行Runnable任务四、线程池执行Callable任务五、线程池工具类(Executors)—不推荐 一、线程池概述 线程池就是一个可以复用线程的技术。 想象一下,如果不使用线程池会有什么问题&#xff1…

spring IOC介绍

spring的Ioc真是个好东西啊,那它到底是什么东西呢,控制反转,到底是怎么转的呢? 假设啊你现在是一个导演,想排部戏,那是不是得需要演员和舞台(spring中的bean),如果按平常的编程思维就是new 一个…

女装品牌网站建设的作用如何

服装是任何人都需要的必备品,尤其是女装,由于女性群体爱美追求时尚的心理更高,因此市场中有大量女装品牌以及大量消费者,其规模非常高,众多大小品牌林立及消费征集下,商家们经营也并不太容易,企…

YouTube网红营销:出海品牌扩大影响力的关键

随着数字媒体的兴起,社交媒体已成为品牌与消费者之间建立联系的重要桥梁。其中,YouTube作为全球最大的视频分享平台,不仅拥有庞大的用户群体,还聚集了众多有影响力的网红。这些网红在各自的领域内拥有强大的话语权和号召力&#x…

区块链实验室(28) - 拜占庭节点劫持区块链仿真

在以前的FISCO环境中仿真拜占庭节点攻击区块链网络。该环境共有100个节点,采用PBFT作为共识机制,节点编号分别为:Node0,Node,… ,Node99。这100个节点的前2010区块完全相同,自区块2011开始分叉。…

No suitable driver found for jdbc:mysql://localhost:3306(2023/12/7更新)

有两种情况: 压根没安装下载了但没设为库或方法不对 大多数为第一种情况: 一. 下载jdbc 打开网址选择一个版本进行下载 https://nowjava.com/jar/version/mysql/mysql-connector-java.html 二.安装jdbc 在项目里建一个lib文件夹 在把之前下载的jar文…

【开源】基于Vue+SpringBoot的陕西非物质文化遗产网站

文末获取源码,项目编号: S 065 。 \color{red}{文末获取源码,项目编号:S065。} 文末获取源码,项目编号:S065。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 设计目标2.2 研究内容2.3 研究方法与…

四十一、高可用

一、定义 TC(Tencent Cloud)的异地多机房容灾架构是指,在不同的地理位置上配置多个数据中心,以确保系统的高可用性和容灾能力。当某个数据中心发生故障或者不可用时,可以自动切换到其他数据中心来提供服务,…

vscode如何为python设置静态类型检测工具:mypy

设置好之后的效果如下图所示,你可以在下方problems一栏看到工作区所有文件存在的问题 安装mypy就像其他插件一样,在extensions中搜索mypy,再install即可。 但是安装以后,我的vscode弹出了以下通知: The mypy daemon e…

Global IIIumination(GI)全局光照原理(一)3D空间全局光照

文章目录 一、Global IIIumination(GI)全局光照基本概念二、主流的全局光照方法:三、Reflective shadow maps(RSM)反射阴影贴图 全局光照四、Light Propagation Volumes (LPV)光线传播体积 全局光照1.第一步&#xff0…

Linux中的网络时间服务器

本章主要介绍网络时间的服务器 使用chrony配置时间服务器配置chrony客户端服务器同步时间 1.1 时间同步的重要性 一些服务对时间要求非常严格,例如如图所示的由三台服务器搭建的ceph集群 这三台服务器的时间必须保持一致,如果不一致,就会显…

C语言之动态内存管理(malloc calloc realloc)

C语言之动态内存管理 文章目录 C语言之动态内存管理1. 为什么要有动态内存管理2. malloc 和 free2.1 malloc2.2 free2.3 例子 3. calloc 和 realloc3.1 calloc3.2 realloc 4. 常见的动态内存错误4.1 对NULL指针的解引⽤操作4.2 对动态开辟空间的越界访问4.3 对⾮动态开辟内存使…

Themis: Fast, Strong Order-Fairness in Byzantine Consensus

目录 笔记后续的研究方向摘要引言秩序井然 Themis: Fast, Strong Order-Fairness in Byzantine Consensus CCS 2023 笔记 后续的研究方向 摘要 我们介绍了Themis,这是一种将交易的公平排序引入(许可的)拜占庭共识协议的方案,最…