逻辑斯特回归

news2024/10/7 6:42:07

*分类是离散的,回归是连续的

下载数据集

train=True:下载训练集

逻辑斯蒂函数保证输出值在0-1之间

能够把实数值映射到0-1之间

 导函数类似正态分布

 其他饱和函数sigmoid functions

循环神经网络经常使用tanh函数

与线性回归区别

塞戈马无参数,构造函数无区别

 更改损失函数MSE->BCE损失(越小越好)

分布的差异:KL散度,cross-entropy交叉熵 

二分类的交叉熵

 

 

# -*- coding: utf-8 -*-
# @Time    : 2023-07-18 20:26
# @Author  : yuer
# @FileName: exercise06.py
# @Software: PyCharm
import matplotlib.pyplot as plt
import numpy as np
import torch

# 数据集
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[0], [0], [1]])


# 先根据x算出y值再根据y的范围找到分类

class logisticRegressionModel(torch.nn.Module):
    def __init__(self):
        super(logisticRegressionModel, self).__init__()
        self.linear = torch.nn.Linear(1, 1)
        # x_data,y_data都是一维,与线性回归相比构造没有函数区别

    def forward(self, x):
        y_pred = torch.sigmoid(self.linear(x))
        return y_pred


model = logisticRegressionModel()

# 默认情况size_average=True 即loss是1/n倍的,False设置loss不除n
criterion = torch.nn.BCELoss(size_average=False)
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
# SGD梯度下降优化方法 初始化w,b都为0

for epoch in range(1000):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    print(epoch, loss.item())

    optimizer.zero_grad()  # 清空梯度
    loss.backward()  # 反馈算梯度并更新
    optimizer.step()  # 更新w,b的值

print('w=', model.linear.weight.item())
print('b=', model.linear.bias.item())

x_test = torch.Tensor([[4.0]])
y_test = model(x_test)
print('y_pred=', y_test.data)

x = np.linspace(0, 10, 200)  # 在线性空间中以均匀步长生成数字序列;在0-10之间的200个点
x_t = torch.Tensor(x).view((200, 1))  # 转换为200*1的矩阵
y_t = model(x_t)  # 利用模型训练
y = y_t.data.numpy()
plt.plot(x, y)
plt.plot([0, 10], [0.5, 0.5], c='r')
plt.xlabel('Hours')
plt.ylabel('Probability of Pass')
plt.grid()
plt.show()

 

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

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

相关文章

《嵌入式 - 工具》J-link读写MCU内部Flash

1 J-Link简介 J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,是学…

VirtualBox 7.0.10 使用宿主机物理硬盘

方法: 利用virtualbox的管理工具,将宿主机脱机后的物理硬盘,映射为一个vmdk,然后在vitrualbox中注册该vmdk,然后分配给虚拟机使用。 1. 右键单击window桌面左下角,选择 Windows PowerShell (管理员) 2. c…

第一章 函数的概念

文章目录 考点1、定义域2、对应法则 一、函数的概念1、自变量 x , 因变量 y,一一对应,因此有公式 y f (x)2、定义域具体函数的定义域 (送分题) 真题1、2、3、4、抽象函数的定义域 真题1、2、 3、根据函数的对应法则求函数表达式题…

会声会影VideoStudio2023中文旗舰版有哪些新功能及最低系统配置要求

会声会影VideoStudio2023中文旗舰版使用起来很有趣。它很容易使用,但仍然给你很多功能和力量。会声会影VideoStudio2023中文旗舰版让我与世界分享我的想法!“这个产品的功能非常多,我几乎没有触及它的表面,我可以做大量的编辑、色…

js ==运算规则

let a {name: zhangsan,valueOf(){return 100;} }; let b 100; console.log(ab); //true let a {value: 1,valueOf: function() {return this.value;} };console.log(a 1 && a 2 && a 3); // 输出 true

macOS Sonoma 14 beta 3 (23A5286i) ISO、IPSW、PKG 下载,公共测试版现已推出

macOS Sonoma 14 beta 3 (23A5286i) ISO、IPSW、PKG 下载,公共测试版现已推出 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装…

树莓派安装ROS

ROS,树莓派如何快速部署ROS 版本查看 检查Raspbian版本的最简单方法是利用终端。 在开始之前,请确保已经开启了一个终端会话。 在Raspbian中使用一个简单的命令来获取当前版本。 要查看当前安装的Raspbian版本信息,需要做的就是执行下面的…

RT1052的介绍及MDK

文章目录 RT1052 核心板的资源型号为:RT1052CVL5B。GPIO端口原理LDOEEPROM 复位电路启动模式设置电路BootLoader地址 开发环境搭建新建 基于 FSL 库的 MDK5 工程软件下载SDK包SDK包内容boards 文件夹CMSIS 文件夹devices 文件夹middleware 文件夹: 新建工…

解决Git拉取代码仓库时显示文件名太长无法创建的问题解决

问题描述 拉取鸿蒙仓库应用示例代码时,鸿蒙应用示例代码,发现能下载成功,但是会报一个错误,错误截图和信息如下所示: 报错信息: try/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/ …

Redis的9种数据类型与数据持久化

系列文章传送门: 【七天入门数据库】第一天 MySQL的安装部署 【七天入门数据库】第二天 数据库理论基础 【七天入门数据库】第三天 MySQL的库表操作 【七天入门数据库】第四天 数据操作语言DML 一、Redis的9种数据类型的基本操作 (一)k…

服务器中了360后缀勒索病毒,360后缀勒索病毒介绍解密数据恢复

360后缀勒索病毒,是BeijingCrypt勒索家族中的一种勒索软件病毒,这种恶意软件一旦攻击了企业的服务器就会利用自身独特的加密技术来全盘扫描系统文件,并对用户的全部文件进行加密,并要求用户支付赎金以解锁文件。近期,我…

16matlab数据分析 多项式的求导(matlab程序)

1.简述 多项式的求导 polyder( ):多项式求导函数。调用格式: ( 1 ) ppolyder( P):求多项式P的导函数。 ( 2 ) ppolyder(P,Q):求PQ的导函数。 ( 3 ) [p,q]polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。 多项式的表示 多项式的四则运算 四…

i.MX6ULL(十七) linux LED驱动

1 设备树 LED 驱动原理 对于MX6ULL 点灯方式较多,直接通过寄存器操作更适合低成本设备,与裸机实验不同的是,在 Linux 下编写驱动要符合 Linux 的驱动框架。 但Linux 下的任何外设驱动,最终都是要配置相应的硬件寄存器&#xff0…

Spring中的Bean对象

经过上一篇博客,我们已经可以实现基本的 Spring 读取和存储对象的操作了,但在操作的过程中我们发 现读取和存储对象并没有想象中的那么“ 简单 ” ,所以接下来我们要学习更加简单的操作 Bean 对象的方法。 在 Spring 中想要 更简单的存储…

mac怎么转换音频格式?

mac怎么转换音频格式?相信很多小伙伴都知道,平时我们接触到的音频格式大多是mp3格式的,因为mp3是电脑上最为流行的音频格式,不过除了mp3格式外,还有很多不同的音频格式,有时候不同网上或者不同软件上下载到…

Python爬虫学习笔记(十)————Scrapy

目录 1.scrapy是什么? 2.安装scrapy 3. scrapy项目的创建以及运行 (1)创建scrapy项目: (2)项目组成: (3)创建爬虫文件: ①跳转到spiders文件夹中去创建…

ext4 - delay allocation数据结构

概述 延迟分配delay allocation是ext4非常重要的特性,启用该特性write系统将用户空间buffer写入内存page cache中即返回,此时也不会真正进行磁盘block分配,而是延迟到磁盘回写时(比如dirty ratio达到一定值,定时刷新&…

高校大数据教材推荐-《Python中文自然语言处理基础与实战》

《Python中文自然语言处理基础与实战》是“十四五”职业教育国家规划教材,是大数据应用开发(Python)“1X”职业技能等级证书配套系列教材。本书以项目为载体,突出职业技能。坚持理实一体化的理念。理实一体化,就是理论…

H5基础教程

w3school官网 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 TestH5

Vue3+Vite前端知识汇总1篇

目录 1、设置package.json,让编译完成后自动打开浏览器。 2、设置vite.config.ts,设置src别名,后面就不用 ../../../ 了。 3、安装types/node 解决vscode显示红波浪线问题。 4、安装 sass和reset.css 5、创建并引入全局组件,HospitalTop…