罗杰斯特回归
定义
逻辑回归其实就是原来的线性回归加了激活函数,这个函数其实就是sigmoid函数,把一个回归的连续数值压缩到了0到1的空间,其实只要有函数能够满足把数值压缩到0,1之间就可以(因为0到1之间的数值就是概率值)

对于分类问题而言,不能和回归问题一样,计算与真值的距离,即MSE损失(均方误差损失),为此人们发明了交叉熵损失。
对于单个样本,其二元交叉熵损失为:
L = − [ y log ( y ^ ) + ( 1 − y ) log ( 1 − y ^ ) ] L = - [y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})] L=−[ylog(y^)+(1−y)log(1−y^)]
其中, y y y 是真实标签(取值为 0 或 1), y ^ \hat{y} y^ 是模型预测的概率(取值范围在 [ 0 , 1 ] [0, 1] [0,1] 之间)。
分析:当真实值为1的时候,损失变为:
L = − y log ( y ^ ) L = - y \log(\hat{y}) L=−ylog(y^)
为了让损失最小,预测值 y ^ \hat{y} y^越大越好,即越为1越好
当真实值为0的时候,损失变为:
L = − log ( 1 − y ^ ) L = - \log(1-\hat{y}) L=−log(1−y^)
为了让损失最小,预测值 y ^ \hat{y} y^越小越好,即越为0越好
这个是符合损失函数概念的,即越接近真实值,损失越小。
对于 N N N 个样本的平均二元交叉熵损失为:
L = − 1 N ∑ i = 1 N [ y i log ( y ^ i ) + ( 1 − y i ) log ( 1 − y ^ i ) ] L = - \frac{1}{N} \sum_{i=1}^{N} [y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i)] L=−N1i=1∑N[yilog(y^i)+(1−yi)log(1−y^i)]
对于多分类任务一样,BCE损失函数如下:
H ( y , p ) = − 1 n ∑ i = 1 n ∑ j = 1 C y i j log ( p i j ) H(y,p)=-\frac{1}{n}\sum_{i = 1}^{n}\sum_{j = 1}^{C}y_{ij}\log(p_{ij}) H(y,p)=−n1i=1∑nj=1∑Cyijlog(pij)
C是类别,n是样本数目

pytorch框架编写
不管什么模型,其实也是只有四部
- (1)准备数据
import torch
import torch.nn.functional as F
# 准备数据
x_data = torch.tensor([[1.0],[2.0],[3.0]], dtype=torch.float32)
y_data = torch.tensor([[0.0],[0.0],[1.0]], dtype=torch.float32)
- (2)构建模型
# 构建模型
class LogiscalRegression(torch.nn.Module):def __init__(self):super(LogiscalRegression,self).__init__()self.linear=torch.nn.Linear(1,1)def forward(self,x):y_pred=F.sigmoid(self.linear(x))return y_pred
核心在于
y_pred=F.sigmoid(self.linear(x))
线性回归的值取了一个sigmoid激活,将其压缩到【0,1】之间。
- (3)初始化模型,并定义损失
# 实例化自己构建的模型
model=LogiscalRegression()
#定义损失函数
cretirion=torch.nn.BCELoss(reduction='sum')
# 定制优化器类型
optimizer=torch.optim.SGD(model.parameters(),lr=0.01)
- (4)开始损失
#开始训练
for epoch in range(100):#模型结果y_pred = model(x_data)#计算损失loss=cretirion(y_pred,y_data)print("loss:",loss.item())#梯度归零optimizer.zero_grad()#反向转播loss.backward()#更新optimizer.step()
全部代码如下
import torch
import torch.nn.functional as F
# 准备数据
x_data = torch.tensor([[1.0],[2.0],[3.0]])
y_data = torch.tensor([[0.0],[0.0],[1.0]])
# 构建模型
class LogiscalRegression(torch.nn.Module):def __init__(self):super(LogiscalRegression,self).__init__()self.linear=torch.nn.Linear(1,1)def forward(self,x):y_pred=F.sigmoid(self.linear(x))return y_pred
# 实例化自己构建的模型
model=LogiscalRegression()
#定义损失函数
cretirion=torch.nn.BCELoss(size_average =False)
# 定制优化器类型
optimizer=torch.optim.SGD(model.parameters(),lr=0.01)
#开始训练
for epoch in range(100):y_pred = model(x_data)loss=cretirion(y_pred,y_data)print("loss:",loss.item())optimizer.zero_grad()loss.backward()optimizer.step()

相关文章:
罗杰斯特回归
定义 逻辑回归其实就是原来的线性回归加了激活函数,这个函数其实就是sigmoid函数,把一个回归的连续数值压缩到了0到1的空间,其实只要有函数能够满足把数值压缩到0,1之间就可以(因为0到1之间的数值就是概率值) 对于分类…...
Android 10.0 SystemUI状态栏去掉刘海屏功能实现
1.前言 在android10.0的系统rom定制化开发中,在一些产品中,对于带有刘海屏的产品中,会因为 刘海屏导致状态栏能显示图片的位置很小,然后会出现状态栏图标显示为白点的功能, 接下来看下问题怎么解决 2.SystemUI状态栏去掉刘海屏功能实现的核心类 frameworks/base/core/r…...
三维空间中点、线、面的关系
三维空间中点、线、面的关系 点相对于平面的位置关系直线相对于平面的位置关系1.根据三点计算平面方程 //根据3点计算平面方程#include <iostream> #include <cmath> #include <vector>...
【嵌入式学习2】C语言 - VScode环境搭建
目录 ## 语言分类 ## c语言编译器 ## VScode相关配置 ## 语言分类 编译型语言:C,C解释型语言:python,JS ## c语言编译器 分类GCC 系列MinGWCygwinMSVC系列一套编程语言编译器将GCC编译器和GNU Binutils移植到Win32平台下的产物…...
TCP/IP的网络连接设备
TCP/IP层物理层网卡、集线器、中继器数据链路层网桥、交换机网络层路由器传输层网关应用层 1.网桥:网桥主要功能是将一个网络的数据沿通信线路复制到另一个网络中去,可以有效的连接两个局域网 2.网关:网关又称协议转换器,是将两…...
蓝桥杯真题 2109.统计子矩阵
原题地址:1.统计子矩阵 - 蓝桥云课 问题描述 给定一个 NMNM 的矩阵 AA, 请你统计有多少个子矩阵 (最小 1111, 最大 NM)NM) 满足子矩阵中所有数的和不超过给定的整数 KK ? 输入格式 第一行包含三个整数 N,MN,M 和 KK. 之后 NN 行每行包含 MM 个整数, 代表矩阵 AA. 输出格…...
利用脚本和Shader制作屏幕后处理效果
一、屏幕后处理的实现原理 该屏幕后处理的原理是将渲染完成后的屏幕纹理通过脚本和Shader完成一些操作,然后实现各种屏幕效果 而实现屏幕后处理效果的主要操作就是获得当下渲染完成后的屏幕图像,其中unity提供了一个函数用于获取此图像——OnRenderIma…...
【银河麒麟系统常识】命令:uname -m(查看系统架构)
命令: uname -m 功能 常用的 Linux/Unix 终端命令,用于显示当前系统的硬件架构; 返回 返回系统的CPU架构类型,用于判断软件兼容性; 输出结果架构说明常见设备x86_64Intel/AMD 64位 CPU主流 PC、服务器aarch64ARM 64位 …...
3.1.2 内存池
文章目录 3.1.2 内存池1. 什么是内存池2. 内存管理1. 定长2. 不定长3. jemalloc4. tcmalloc 3.1.2 内存池 1. 什么是内存池 内存池(Memory Pool) 是一种 预先分配 一块大内存,然后按需分配和回收 其中小块内存的技术。它的本质是管理一块连续…...
基于SpringBoot + Vue 的餐厅点餐管理系统
SpringBootVue餐厅点餐管理系统 技术框架 后端:springboot mybatisPlus前端:Vue2 elementUI数据库:mysql项目构建工具:maven 数据库表 14张 角色及功能 管理员:登录、用户管理、餐桌信息管理、菜品类型管理、菜…...
Android开发BasePagerAdapter
Android开发BasePagerAdapter 有个基类的PagerAdapter 方便很多 public class BasePagerAdapter extends FragmentPagerAdapter {private static final String TAG "FragmentPagerAdapter";private static final boolean DEBUG false;private final FragmentMana…...
70. Linux驱动开发与裸机开发区别,字符设备驱动开发
一、裸机驱动开发回顾 1、底层,跟寄存器打交道,有些MCU提供了库。 二、Linux驱动开发思维 1、Linux下驱动开发直接操作寄存器不现实。 2、根据Linux下的各种驱动框架进行开发。一定要满足框架,也就是Linux下各种驱动框架的掌握。 3、驱动最…...
【博客节选】再谈Unity 的 root motion
节选自 【Unity实战笔记】第二十三 root motion变更方向攻击 (OnStateMove rootmotion rigidbody 使用的一些问题) 小伙伴们应该对root motion非常困惑,包括那个bake into pose。 当xz bake into pose后,角色攻击动画与父节点产…...
26考研——栈、队列和数组_栈(3)
408答疑 文章目录 一、栈1、栈(Stack)的概念和特点定义术语操作特性示例直观理解栈的基本操作初始化栈判断栈是否为空入栈操作出栈操作读取栈顶元素销毁栈 栈的数学性质 2、栈的顺序存储结构顺序栈的定义栈顶指针初始化注意事项 共享栈共享栈的操作共享栈…...
“十五五”时期航空弹药发展环境分析
1.“十五五”时期航空弹药发展环境分析 (标题:小二号宋体居中) 一、建言背景介绍 (一级标题:黑体三号,首行空两格) 航空弹药作为现代战争的核心装备,其发展水平直接关乎…...
桥接模式的优点和典型实现
桥接模式的优点 桥接模式通过将抽象部分与实现部分分离,使得它们可以独立变化,从而提高系统的灵活性和可扩展性。以下是桥接模式的主要优点: 分离抽象和实现: 桥接模式将抽象部分和实现部分分离,使得两者可以独立变化…...
Kotlin 协程官方文档知识汇总(一)
1、协程基础 Kotlin 是一门仅在标准库中提供最基本底层 API 以便其他库能够利用协程的语言。与许多其他具有类似功能的语言不同,async 与 await 在 Kotlin 中并不是关键字,甚至都不是标准库的一部分。此外,Kotlin 的挂起函数概念为异步操作提…...
删除字符串邻近的重复项
1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode) 对于字符串中字符的匹配或者删除等问题,通常会用到栈这个数据结构,要保持这样一个思路。 对于这道题,可以遍历字符串,用栈存储,一旦遇到…...
基于 mxgraph 实现流程图
mxgraph 可以实现复杂的流程图绘制。mxGraph里的Graph指的是图论(Graph Theory)里的图而不是柱状图、饼图和甘特图等图(chart),因此想找这些图的读者可以结束阅读了。 作为图论的图,它包含点和边,如下图所示。 交通图 横道图 架构图 mxGrap…...
动态路由机制MoE专家库架构在多医疗AI专家协同会诊中的应用探析
随着医疗人工智能技术的飞速进步,AI在医学领域的应用日益增多,尤其是在复杂疾病的诊断和治疗中,AI技术的应用带来了巨大的潜力。特别是动态路由机制混合专家(Mixture of Experts,MoE)架构,因其灵活、高效的特点,正逐渐成为实现多AI专家协同会诊的关键技术。通过将多个不…...
双工通信:WebSocket服务
(一)WebSocket概述 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输 注意;Websocket也只能由客户端先握…...
洪水灌溉算法 + 总结
文章目录 floodfill算法图像渲染题解代码 岛屿数量题解代码 岛屿的最大面积题解代码 被围绕的区域题解代码 太平洋大西洋水流问题题解代码 扫雷游戏题解代码 衣橱整理题解代码 总结 floodfill算法 1. 寻找相同性质的联通块,可以使用dfs或者bfs解决,比如…...
docker中间件部署
1.docker安装 # 1.卸载旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 2.需要的安装包 yum install -y yum-utils# 3.设置镜像的仓库 # 3.1.默认是国外的&#x…...
LangChain4j(1):初识LangChain4j
1 什么是LangChain和LangChain4j LangChain是一个大模型的开发框架,使用LangChain框架,程序员可以更好的利用大模型的能力,大大提高编程效率。如果你是一个lava程序员,那么对LangChain最简单直观的理解就是,LangChain…...
基于 Swoole 的高性能 RPC 解决方案
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
Photoshop 2025安装包下载及Photoshop 2025详细图文安装教程
文章目录 前言一、Photoshop 2025安装包下载二、Photoshop 2025安装教程1.解压安装包2.运行程序3.修改安装路径4.设安装目录5.开始安装6.等安装完成7.关闭安装向导8.启动软件9.安装完成 前言 无论你是专业设计师,还是初涉图像处理的小白,Photoshop 2025…...
CPU跑大模型怎么加速?
一、概念 近几年,大模型的规模越做越大。普通码农没几张显卡几乎都跑不动动辄几百B的模型了。当然,随着SLM进一步发展,移动端、PC端部署SLM变得轻松了起来。即便只有CPU也能带得起3B以内的SLM,只不过推理速度比较感人。因此&#…...
PostgreSQL详解
第一章:环境部署与基础操作 1.1 多平台安装详解 Windows环境 图形化安装 下载EnterpriseDB安装包(含pgAdmin) 关键配置项说明: # postgresql.conf优化项 max_connections 200 shared_buffers 4GB work_mem 32MB 服务管理命…...
SQL Server安装程序无法启动:系统兼容性检查失败
问题现象: 运行 SQL Server 2022 安装程序时,提示 “硬件或软件不满足最低要求”,安装向导直接退出或无法继续。 快速诊断 操作系统版本检查: # 查看 Windows 版本(需 20H2 或更高) winver 支持的系统&…...
期权合约作废的话,权利金和保证金会退还么?
在期权交易中,权利金是否可以退回,主要取决于期权的交易情况和合约条款。 期权作废的三种情形 一般来说期权作废一共有三种情况,分别是到期没有行权、主动放弃或者是标的退市了。 第一种是到期未行权,一般来说值得都是虚值期权&…...
