Logistic回归(Logistic Regression)

机器学习的分类问题,使用logistics回归(虽然叫回归,但是是做分类任务的)

一:简介

MINIST Dataset 一个手写数字的数据集

 其中有10分类,0,1,2,....,9

未来y得到的结果是属于一个集合,集合中的数值为{0,1,2,....,9},我们需要估算的是y是哪一个数字。

注意:如果是第一个类别让数值等于0,第二个类别数值等于1这种思路非常不好。举个例子,当我们给一个手写的7时,我们知道手写的7与9更接近,与8反而差的多,但是当我给出一个手写的7作为输入时,更接近7,9,此时8作为7后一个输出就比较尴尬,因此通常不使用这样的思想。

此时要注意,手写出的数字,其实在抽象上是没有大小之分的,不能说写的9就比写的0大,只有给他们附上数字的定义时,才有大小之分。

正确的思路应该是,更根据输入的x,输出为0的概率是多少,输出为1的概率是多少,以此类推,最终所有的概率值相加结果为1。最后找出最大的概率,就是我们的预测的最终结果。

下载MNIST Dataset

import torchvision
#root输入下载的地址  train训练集还是测试集 download表示是否在网上进行下载,如果第一次就设True 已经下载完就不会自动下载了
train_set = torchvision.datasets.MNIST(root="./dataset/mnist",train = True, download=True)
test_set = torchvision.datasets.MNIST(root="./dataset/mnist/",train = False, download=True)

但是由于网络限制,这种方法通常会报错,可以尝试下面解决方法:

【已解决】MNIST数据集下载失败:HTTP Error 403: Forbidden-CSDN博客

还有其他很多的分类的数据集,大家可以在网上自行了解。

二:回归任务和分类任务的区别

左边是回归任务,右边是分类任务。

回归任务:y表示在输入x的情况下,未来y可以得到的数值。

分类任务:y不表示可以拿多少数值,而是是否通过。如果只是二分类,就类似与我们数学中的01分布。所以在分类任务中,我们需要计算的每一个输入的概率。

三:logistics函数

由于我们在线性模型中得到的输出为一个实数,但是在分类任务中最后的结果是属于[0,1]范围内的,所以需要一个映射函v

那现在做分类的时候,工作就简单了。现在还是使用线性模型,得到的结果使用logistics函数再算一下。

当然还有其他的sigmoid函数(函数的极限是从-1到1)(都是单调增函数)(都是饱和函数):

四:logistics回归模型

整体过程没有发生变化,主要就是再线性回归模型外再加上了一个logistics函数操作。

模型变化后,相应的损失函数也会发生变化。损失函数变化导致的损失值如何变化?

那为什么下面一个函数可以进行分布间的差异呢?(下图中BC其实是BCE)

看一下BCE的值,发现y与y_hat相差越大时,loss值越大。Mini-batch 是几个损失值的平均值。

代码如下:(在看代码前,看一下本节四第一张图片,线性回归和logistics回归在计算y_hat的差别)

import torch.nn.functional as F

class LogisticRegressionModel(torch.nn.Module):
    def __init__(self):
        #与之前线性的一致,因为sigma 是没有数值的
        super(LogisticRegressionModel,self).__init__()
        self.linear = torch.nn.Linear(1,1)
    
    def forward(self,x):
        #logistic回归和线性回归就差F.sigmoid这一步的运算 
        y_pred = F.sigmoid(self.linear(x))#先进行一次线性变换,随后进行sigmoid运算
        return y_pred

loss函数代码如下(之前线性选择MSE,现在选择BCE):

criterion = torch.nn.BCELoss(size_average=False)

五:总代码

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

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

相关文章

002uboot Makefile分析

1.分析配置过程 我们把补丁文件打到uboot源码中,(补丁文件时根据自己的板子所修改的代码),然后看一下Makefile。 make 100ask24x0_config #这个指令用来配置uboot打入补丁文件后 Makefile中会自动的生成这样的代码,我…

mybatis动态传入参数 pgsql 日期 Interval ,day,minute

mybatis动态传入参数 pgsql 日期 Interval 在navicat中,标准写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL 5 day)在mybatis中,错误写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL#{numbers,jdbcTypeINTEGER} day)报错内…

王道计算机考研数据结构思维导图笔记(持续更新)

第1章 绪论 1.1 数据结构的基本概念 1.1.1 基本概念和术语 1.1.1 数据结构三要素 1.2 算法和算法评价 1.2.1算法的基本概念 1.2.2 算法效率的度量 第2章 线性表 2.1 线性表的定义和基本操作 2.1.1 线性表的定义 2.1.2 线性表的基本操作 2.2.1 顺序表上的定义 2.2.2 顺序…

UE4-光照渲染、自动曝光、雾

目录 一.光源种类 二.灯光的移动性 三.自动曝光 四.指数级高度雾 五.实现光束 一.光源种类 1.定向光源 用来模拟现实中的太阳光。 2.点光源 比如现实中的灯泡 3.聚光源 4.矩形光源 是这几个光源中性能开销最大的,一般不用到游戏场景中,因为游…

项目方案:视频图像结构化分析技术在车辆和人体检测中的应用方案(视频公共安全领域的解决方案)

目录 一、视频结构化分析技术介绍 1、概述 2、定义 3、核心环节 4、应用领域 二、视频中车辆和人的结构化 1、需求 2、信息内容 3、功能说明 (1)信息智能识别功能 (2)智能检索功能 (3)数据统计…

vue学习day11-路由、路由模块的封装、声明式导航-路由的介绍、VueRouter、router-link、自定义高亮类名

32、路由 (1)路由的介绍 1)生活中的路由:设备和ip的映射关系 2)路由:一种映射关系 3)Vue中的路由:路径与组件的映射关系 (根据路由就能知道不同的路径,应…

骑行耳机哪款性价比高?五大热销骑行耳机推荐!

骨传导耳机凭借不入耳佩戴更健康的优点,短时间内迅速风靡骑行圈,其独特的设计不仅为骑行爱好者带来了前所未有的听觉体验,还完美兼顾了安全与便捷。骑行途中,它能够让你在享受音乐的同时,依然保持对周围环境的敏锐感知…

Milvus 核心设计(5)--- scalar indexwork mechanism

目录 背景 Scalar index 简介 属性过滤 扫描数据段 相似性搜索 返回结果 举例说明 1. 属性过滤 2. 扫描数据段 3. 相似性搜索 实际应用中的考虑 Scalar Index 方式 Auto indexing Inverted indexing 背景 继续Milvus的很细设计,前面主要阐述了Milvu…

Java面试八股之Redis哨兵机制

Redis哨兵机制 Redis Sentinel(哨兵)模式是一种高可用解决方案,用于监控和自动故障转移Redis主从集群。以下是对哨兵模式详细过程的描述: 1. 初始化与配置 部署哨兵节点:在不同的服务器上部署一个或多个Redis Sentin…

达梦数据库的系统视图v$dict_cache_item

达梦数据库的系统视图v$dict_cache_item 在达梦数据库(DM Database)中,V$DICT_CACHE_ITEM 是一个系统视图,用于显示字典缓存(Dictionary Cache)中的项信息。字典缓存是数据库中的一个重要组件,…

玩转HarmonyOS NEXT之IM应用首页布局

本文从目前流行的垂类市场中,选择即时通讯应用作为典型案例详细介绍HarmonyOS NEXT的各类布局在实际开发中的综合应用。即时通讯应用的核心功能为用户交互,主要包含对话聊天、通讯录,社交圈等交互功能。 应用首页 创建一个包含一列的栅格布…

设计模式总结(设计模式的原则及分类)

1.什么是设计模式? 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结…

数据结构(4.0)——串的定义和基本操作

串的定义(逻辑结构) 串,即字符串(String)是由零个或多个字符组成的有序数列。 一般记为Sa1a2....an(n>0) 其中,S是串名,单引号括起来的字符序列是串的值;ai可以是字母、数字或其他字符;串中字符的个数n称为串的长度。n0时的…

Proxyman for Mac v5.6.1 抓包调试工具

Mac分享吧 文章目录 效果一、下载软件二、功能三、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 四、运行测试1、打开软件 安装完成!!! 效果 一…

SpringBoot介绍以及第一个SpringBoot程序

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 今天你敲代码了吗 文章目录 2.第一个SpringBoot程序2.1Spring Boot介绍2.2使用idea创建Spring Boot程序2.2.1 社区版idea2.2.2专业版idea2.2.3创建SpringBoot项目2.2.4项目代码和目录介绍目录介绍pom文件 2.3Web…

leetcode 周赛(406)全AC留念

纪念第一次 leetcode 周赛(406)全AC 1.(100352. 交换后字典序最小的字符串) 题目描述: 给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的 字典序最小的字符串 。 如…

量化发展历史简述,QMT/PTrade+恒生UFT、LDP极速柜台适用哪些情形?

量化发展简述 1.2004年萌发阶段:策略局限在量化择时,量化选股等; 光大保德信量化核 心基金 上投摩根阿尔法基 金 金融危机,海归引入。 2.2010量化元年:中低频交易为主,主要依靠套利、对冲、多因子策略等…

Nginx入门到精通一(基本概念介绍)

下面内容整理自bilibili-尚硅谷-Nginx青铜到王者视频教程 Nginx相关文章 Nginx入门到精通二(安装配置)-CSDN博客 Nginx入门到精通三(Nginx实例1:反向代理)-CSDN博客 Nginx入门到精通四(反向代理2&…

linux服务器登录mysql无异常,本地登录报1045 -Access denied for user

1、本地登录linux服务器报“1045 -Access denied for user (用户访问被拒绝)” 造成上面链接问题的原因是,用户权限不足,需要在linux服务器上执行如下2条命令即可 CREATE USER root127.0.0.1 IDENTIFIED BY root123; GRANT ALL P…

蔚来Java实习一面总结

此文用于个人面经总结,答案可能存在出入,望理性食用~~ 1. 分析时间复杂度的工具 2. 数组和链表的区别 数组:线性表,存储空间连续,可以通过下标直接访问元素,查找时间复杂度为O(1),插入的时间…