Pytorch实现逻辑斯蒂回归模型 代码实操

article/2025/10/14 0:24:04

初学者学习Pytorch系列

第一篇 Pytorch初学简单的线性模型代码实操
第二篇 Pytorch实现逻辑斯蒂回归模型 代码实操


文章目录

  • 初学者学习Pytorch系列
  • 前言
  • 一、先上代码
  • 二、测试结果
    • 1. 数据结果
    • 2.画图结果
  • 总结


前言

  1. 上一篇的数据中,是这样子的例子
    x_data代表的学习的时间
    y_data代表的是分数
    如下:
    [1.0], [2.0], [3.0]
    [2.0], [4.0], [6.0]

  2. 与上一篇文章不同,本文的数据是用于分类识别的,x_data依然是代表学习时间,但是y_data代表是能否通过考试,所以y_data设计成这样子[0], [0], [1]
    (0代表不通过,1代表通过)

  3. 这里就诞生一个问题,在原来的linear模型中求出来是分数,而我们要求的是通过考试的概率(概率大则判定为通过,为1,反之为0),所以要用sigmoid函数将数值转换为0-1之间的值作为概率。


一、先上代码

代码如下(解释已经写在代码中):

import torch
import torch.nn.functional as F  # 导入sigmoid函数
import numpy as np
import matplotlib.pyplot as pltx_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[0], [0], [1]])class LogisticsRegression(torch.nn.Module):def __init__(self):super(LogisticsRegression, self).__init__()self.linear = torch.nn.Linear(1, 1)def forward(self, x):y_pred = F.sigmoid(self.linear(x))      # 用sigmoid函数可以将数值转换成0-1的概率值return y_predmodel = LogisticsRegression()# 二分类交叉熵
criterion = torch.nn.BCELoss(reduction='sum')# SGD是Stochastic gradient descent,随机梯度下降算法
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)# 训练过程
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()print(f"w={model.linear.weight.item()},b={model.linear.bias.item()}")# 测试数据并绘图
x = np.linspace(1, 10, 200)  # 生成一个数列,把1-10划分成200x_t = torch.Tensor(x).view((200, 1))  # view可以改变Tensor的形状,(2001)指的是2001y_t = model(x_t)  # 计算结果
y = y_t.data.numpy()  # 转成列表
plt.plot(x, y)                          # 传入x轴的信息和y轴的信息(x,y是列表)
plt.plot([0, 10], [0.5, 0.5], c='r')    # 在0-100.5的地方画一条线,以便我们看出那个地方是不确定的
plt.xlabel('Hours')                     # 设置x坐标信息
plt.ylabel("Probability of Pass")       # 设置y坐标信息
plt.grid()                              # 显示显示网格线
plt.show()                              # 画图显示

二、测试结果

1. 数据结果

980 轮开始展示
轮数 损失
980 1.1843305826187134
981 1.1836894750595093
982 1.1830494403839111
983 1.1824101209640503
984 1.1817715167999268
985 1.1811339855194092
986 1.1804969310760498
987 1.1798609495162964
988 1.1792256832122803
989 1.178591251373291
990 1.177957534790039
991 1.1773250102996826
992 1.1766928434371948
993 1.1760615110397339
994 1.175431251525879
995 1.1748015880584717
996 1.1741727590560913
997 1.1735448837280273
998 1.1729176044464111
999 1.1722912788391113
w=0.9891612529754639,b=-2.4005227088928223

2.画图结果

画图结果


总结

以上就是今天要讲的内容,本文仅仅简单介绍了pytorch实现逻辑斯蒂线性回归的基本使用。代码一些解释在上一篇文章也有的。


http://chatgpt.dhexx.cn/article/aJ5cngjB.shtml

相关文章

回归分析(三)二项逻辑斯蒂回归模型

回归分析(三)二项逻辑斯蒂回归 学了一段时间突然又遇到逻辑斯蒂回归,结果发现已经忘完了,所以今天重新梳理一下。 (1)逻辑斯蒂分布 先看一下逻辑斯蒂分布函数 F ( x ) F(x) F(x),其概率密度函数…

回归分析:逻辑斯蒂回归模型,可视化分类决策边界

文章目录 逻辑斯蒂回归模型逻辑斯蒂回归模型python案例 逻辑斯蒂回归模型 前面的例子都是在用线性模型解决回归任务,那么线性模型能否完成分类任务呢?相较于回归任务,分类任务的预测值是离散的,比如二分类问题,可以用…

机器学习:逻辑斯蒂回归

目录 逻辑回归模型介绍逻辑斯蒂分布二项逻辑斯谛回归模型目标函数 逻辑回归模型介绍 原理: 逻辑斯谛回归(logistic regression)是经典的分类方法,它属于对数线性模型,原理是根据现有的数据对分类边界线建立回归公式&a…

《PyTorch深度学习实践》06 逻辑斯蒂回归 代码

视频:06.逻辑斯蒂回归_哔哩哔哩_bilibili 参考文章:pytorch 深度学习实践 第6讲 逻辑斯蒂回归_会游泳的小雁的博客-CSDN博客 网络模型的基本框架 1步骤: 1.Prepare dataset 2.Design model using Class (inherit from nn.Modul…

逻辑斯蒂回归 matlab实现

说明 我将试图从感知机的基础上说明逻辑回归的一般性原理和学习及预测方法,其中缺少一些必要的证明,包括了一个二分类问题的实例。其中关于感知机的实验在 机器学习 专栏中有介绍。 从感知机到逻辑斯蒂回归 感知机模型: 应用范围&#xf…

Lecture6 逻辑斯蒂回归(Logistic Regression)

目录 1 常用数据集 1.1 MNIST数据集 1.2 CIFAR-10数据集 2 课堂内容 2.1 回归任务和分类任务的区别 2.2 为什么使用逻辑斯蒂回归 2.3 什么是逻辑斯蒂回归 2.4 Sigmoid函数和饱和函数的概念 2.5 逻辑斯蒂回归模型 2.6 逻辑斯蒂回归损失函数 2.6.1 二分类损失函数 2.…

机器学习之逻辑斯蒂回归

目录 一、分类与回归 二、逻辑回归不是回归 三、生成式逻辑回归 四、判别式逻辑回归 五、逻辑回归为什么不用均方误差做损失函数 六、判别模型与生成模型的比较 七、写在最后 一、分类与回归 回归与分类是机器学习的基本问题。回归是预测连续值,分类是预测…

逻辑斯蒂回归算法

目录 逻辑斯蒂分布 二元逻辑斯蒂回归模型 二元逻辑斯蒂回归的损失函数及优化方法 二元逻辑斯蒂回归的正则化 多元逻辑斯蒂回归 逻辑斯蒂回归小结 LR的优点 LR的缺点 LR将连续特征离散化的原因 逻辑回归和线性回归的区别和联系 LR和SVM的关系 scikit-learn 逻辑回归…

逻辑斯蒂回归以及它的梯度下降法

文章目录 前言逻辑斯蒂分布 模型二项逻辑斯蒂回归模型多项逻辑斯蒂回归模型 策略算法如何求对数似然函数的最大值梯度下降法算法思想推导公式 注意 前言 预测任务分为: 回归问题:输入、输出变量为连续变量。分类问题:输出变量为有限个离散变…

逻辑斯蒂回归分类算法

逻辑斯蒂回归分类算法 首先来看一个线性回归来进行分类的问题: 怎样判断肿瘤是否恶性? 很明显线性回归用于分类问题无法处理边界点的位置。 同时,线性回归健壮性不够,一旦有噪声,立刻“投降” 使用逻辑斯蒂回归 ——…

逻辑斯蒂回归(二分类算法)理论+Python代码实现

逻辑斯蒂回归(二分类算法)理论Python代码实现 文章目录 逻辑斯蒂回归(二分类算法)理论Python代码实现一、理论基础(一) 基于 Logistic 回归和 Sigmoid 函数的分类(二) 模型训练与代价…

逻辑斯蒂回归 逻辑回归_逻辑回归简介

逻辑斯蒂回归 逻辑回归 Logistic regression is a classification algorithm, which is pretty popular in some communities especially in the field of biostatistics, bioinformatics and credit scoring. It’s used to assign observations a discrete set of classes(ta…

Logistic Regression 逻辑斯蒂回归

文章目录 5、Logistic Regression 逻辑斯蒂回归5.1 回归任务5.1.1 MNIST Dataset5.1.2 CIFAR-10 Dataset 5.2 Regression vs Classification 回归 vs 分类5.3 Sigmoid functions5.3.1 Logistic Function [0, 1]5.3.2 Other Functions [-1, 1] 5.4 Model 模型5.5.1 torch.sigmoi…

机器学习-逻辑斯蒂回归(Logistic Regression)

注:内容转自https://github.com/NLP-LOVE/ML-NLP/tree/master/Machine%20Learning,略有修改。 目录 逻辑 1. 什么是逻辑斯蒂回归 2. 什么是Sigmoid函数 3. 损失函数是什么 4.可以进行多分类吗? 5.逻辑斯蒂回归有什么优缺点 6. 逻辑斯…

逻辑斯蒂回归

一:二元逻辑回归模型 二项逻辑斯蒂回归模型是如下的条件概率分布: 其中,Y为输出,w称为权值向量,b称为偏置。逻辑斯蒂回归比较两个条件概率值的大小,将实例x分到概率值较大的那一类。 一个事件的几率是指该…

【笔记】逻辑斯蒂回归

一、逻辑斯蒂回归概述 (1)逻辑斯蒂回归的目的:分类。 逻辑斯蒂回归常常解决分类问题,特别是二分类问题。 (2)逻辑斯蒂回归的过程:回归。 计算结果是0~1之间的连续值,代表发生的可…

逻辑斯蒂回归java_逻辑斯蒂回归模型

http://blog.csdn.net/hechenghai/article/details/46817031 主要参照统计学习方法、机器学习实战来学习。下文作为参考。 第一节中说了,logistic 回归和线性回归的区别是:线性回归是根据样本X各个维度的Xi的线性叠加(线性叠加的权重系数wi就是模型的参数…

逻辑斯蒂回归算法详解

逻辑斯蒂回归算法可用于分类问题,其本质是在线性回归的算法上用sigmoid函数进行模型变换,使得目标值介于0-1之间。本文用于对逻辑斯蒂回归算法(Logistics Regression)进行详细讲述。 逻辑斯蒂回归基本假设 我们知道线性回归的基…

【机器学习实验五】逻辑斯蒂回归

目录 一、逻辑斯蒂回归基本概念 1.1、基本概念 1.2、特点 1.3、Logistic分布 1.4、逻辑斯蒂回归模型 二、利用逻辑斯蒂模型进行分类测试 2.1、数据准备 2.2、编写代码查看数据集的分布情况 2.3、训练分类算法 2.4、绘制决策边界 三、从疝气病症状预测病马的死亡率 …

Logistic regression(逻辑斯蒂)回归分析

Logistic regression (逻辑回归)是当前业界比较常用的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。(注意这里是&a…