广告
返回顶部
首页 > 资讯 > 后端开发 > Python >pytorch实现逻辑回归
  • 763
分享到

pytorch实现逻辑回归

2024-04-02 19:04:59 763人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了PyTorch实现逻辑回归的具体代码,供大家参考,具体内容如下 一、pytorch实现逻辑回归 逻辑回归是非常经典的分类算法,是用于分类任务,如垃圾分类任务,情感

本文实例为大家分享了PyTorch实现逻辑回归的具体代码,供大家参考,具体内容如下

一、pytorch实现逻辑回归

逻辑回归是非常经典的分类算法,是用于分类任务,如垃圾分类任务,情感分类任务等都可以使用逻辑回归。

接下来使用逻辑回归模型完成一个二分类任务:


# 使用逻辑回归完成一个二分类任务
# 数据准备
import torch
import matplotlib.pyplot as plt

x1 = torch.randn(365)+1.5   # randn():输出一个形状为size的标准正态分布Tensor
x2 = torch.randn(365)-1.5
#print(x1.shape)  # torch.Size([365])
#print(x2.shape)  # torch.Size([365])
data = zip(x1.data.numpy(),x2.data.numpy())  # 创建一个聚合了来自每个可迭代对象中的元素的迭代器。 x = [1,2,3]

pos = []
neg = []
def classification(data):
    for i in data:
        if (i[0] > 1.5+0.1*torch.rand(1).item()*(-1)**torch.randint(1,10,(1,1)).item()):
            pos.append(i)
        else:
            neg.append(i)

classification(data)
# 将正、负两类数据可视化
pos_x = [i[0] for i in pos]
pos_y = [i[1] for i in pos]
neg_x = [i[0] for i in neg]
neg_y = [i[1] for i in neg]
plt.scatter(pos_x,pos_y,c = 'r',marker = "*")
plt.scatter(neg_x,neg_y,c = 'b',marker = "^")
plt.show()

# 构造正、负两类数据可视化结果如上图所示

# 构建模型
import torch.nn as nn
class LoGISticRegression(nn.Module):
    def __init__(self):
        super(LogisticRegression, self).__init__()
        self.linear = nn.Linear(2,1)
        self.sigmoid = nn.Sigmoid()

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

model = LogisticRegression()
criterion = nn.BCELoss()
optimizer = torch.optim.SGD(model.parameters(),0.01)
epoch = 5000
features = [[i[0],i[1]] for i in pos]
features.extend([[i[0],i[1]] for i in neg])   #extend 接受一个参数,这个参数总是一个 list,并且把这个 list 中的每个元素添加到原 list 中
features = torch.Tensor(features)   # torch.Tensor 生成单精度浮点类型的张量

label = [1 for i in range(len(pos))]
label.extend(0 for i in range(len(neg)))
label = torch.Tensor(label)
print(label.shape)

for i in range(500000):
    out = model(features)
    #print(out.shape)
    loss = criterion(out.squeeze(1),label)
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    # 分类任务准确率
    acc = (out.ge(0.5).float().squeeze(1)==label).sum().float()/features.size()[0]
    if (i % 10000 ==0):
        plt.scatter(pos_x, pos_y, c='r', marker="*")
        plt.scatter(neg_x, neg_y, c='b', marker="^")
        weight = model.linear.weight[0]
        #print(weight.shape)
        wo = weight[0]
        w1 = weight[1]
        b = model.linear.bias.data[0]
        # 绘制分界线
        test_x = torch.linspace(-10,10,500)   # 500个点
        test_y = (-wo*test_x - b) / w1
        plt.plot(test_x.data.numpy(),test_y.data.numpy(),c="pink")
        plt.title("acc:{:.4f},loss:{:.4f}".fORMat(acc,loss))
        plt.ylim(-5,3)
        plt.xlim(-3,5)
        plt.show()

附上分类结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: pytorch实现逻辑回归

本文链接: https://www.lsjlt.com/news/123207.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pytorch实现逻辑回归
    本文实例为大家分享了pytorch实现逻辑回归的具体代码,供大家参考,具体内容如下 一、pytorch实现逻辑回归 逻辑回归是非常经典的分类算法,是用于分类任务,如垃圾分类任务,情感...
    99+
    2022-11-12
  • Pytorch实现逻辑回归分类
    本文实例为大家分享了Pytorch实现逻辑回归分类的具体代码,供大家参考,具体内容如下 1、代码实现 步骤: 1.获得数据2.建立逻辑回归模型3.定义损失函数4.计算损失函数5.求解...
    99+
    2022-11-11
  • 基于Pytorch实现逻辑回归
    本文实例为大家分享了Pytorch实现逻辑回归的具体代码,供大家参考,具体内容如下 1.逻辑回归  线性回归表面上看是“回归问题”,实际上处理的问题...
    99+
    2022-11-11
  • pytorch使用nn.Moudle实现逻辑回归
    本文实例为大家分享了pytorch使用nn.Moudle实现逻辑回归的具体代码,供大家参考,具体内容如下 内容 pytorch使用nn.Moudle实现逻辑回归 问题 loss下降不...
    99+
    2022-11-11
  • pytorch逻辑回归实现步骤详解
    目录1. 导入库2. 定义数据集2.1 生成数据2.2 设置label3. 搭建网络+优化器4. 训练5. 绘制决策边界6. 代码1. 导入库 机器学习的任务分为两大类:分类和回归 ...
    99+
    2022-11-11
  • PyTorch实现多维度特征输入逻辑回归
    目录一、实现过程1、准备数据2、设计模型4、训练过程5、结果展示二、参考文献一、实现过程 1、准备数据 本文数据采取文献[1]给出的数据集,该数据集前8列为特征,最后1列为标签(0/...
    99+
    2022-11-13
  • Logistic回归(逻辑回归)及python代码实现
    文章目录 Logistic(Logistic Regression,LR)回归原理讲解参数计算 python代码实现生成数据集不使用其他库实现定义激活函数(标准Logistic函数即Sig...
    99+
    2023-10-24
    回归 逻辑回归 人工智能 python 机器学习 分类
  • 基于numpy实现逻辑回归
    本文实例为大家分享了基于numpy实现逻辑回归的具体代码,供大家参考,具体内容如下 交叉熵损失函数;sigmoid激励函数基于numpy的逻辑回归的程序如下: import num...
    99+
    2022-11-11
  • Python实现逻辑回归(Logistic Regression)
    💥 项目专栏:【Python实现经典机器学习算法】附代码+原理介绍 文章目录 前言一、基于原生Python实现逻辑回归算法二、逻辑回归模型的算法原理三、算法实现3.1 ...
    99+
    2023-08-31
    python 逻辑回归 机器学习 人工智能 sklearn 原力计划
  • PyTorch零基础入门之逻辑斯蒂回归
    目录学习总结一、sigmoid函数二、和Linear的区别三、逻辑斯蒂回归(分类)PyTorch实现Reference学习总结 (1)和上一讲的模型训练是类似的,只是在线性模型的基础...
    99+
    2022-11-12
  • python实现逻辑回归的方法示例
    本文实现的原理很简单,优化方法是用的梯度下降。后面有测试结果。 先来看看实现的示例代码: # coding=utf-8 from math import exp import matplotlib.p...
    99+
    2022-06-04
    示例 逻辑 方法
  • 逻辑回归(Logistic Regression)详解
    逻辑回归也称作logistic回归分析,是一种广义的线性回归分析模型,属于机器学习中的监督学习。其推导过程与计算方式类似于回归的过程,但实际上主要是用来解决二分类问题(也可以解决多分类问题)。通过给定的n组数据(训练集)来训练模型,并在训练...
    99+
    2023-08-31
    python 机器学习 算法 分类 回归
  • python实现梯度下降求解逻辑回归
    本文实例为大家分享了python实现梯度下降求解逻辑回归的具体代码,供大家参考,具体内容如下 对比线性回归理解逻辑回归,主要包含回归函数,似然函数,梯度下降求解及代码实现 线性回归 ...
    99+
    2022-11-11
  • python的numpy模块实现逻辑回归模型
    使用python的numpy模块实现逻辑回归模型的代码,供大家参考,具体内容如下 使用了numpy模块,pandas模块,matplotlib模块 1.初始化参数 def initi...
    99+
    2022-11-11
  • 怎么在R语言中实现逻辑回归
    怎么在R语言中实现逻辑回归?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代码开放的...
    99+
    2023-06-14
  • pytorch实现线性回归
    pytorch实现线性回归代码练习实例,供大家参考,具体内容如下 欢迎大家指正,希望可以通过小的练习提升对于pytorch的掌握 # 随机初始化一个二维数据集,使用朋友torch...
    99+
    2022-11-12
  • 逻辑回归模型及案例(Python)
    1 简介 逻辑回归也被称为广义线性回归模型,它与线性回归模型的形式基本上相同,最大的区别就在于它们的因变量不同,如果是连续的,就是多重线性回归;如果是二项分布,就是Logistic回归。 Logistic回归虽然名字里带“回归”,但它实际上...
    99+
    2023-09-24
    学习 python 数据分析 数据挖掘 机器学习
  • Python机器学习之逻辑回归
    目录一、题目二、目的三、平台四、基本原理4.1 逻辑回归4.2 损失函数五、实验步骤一、题目 1.主题:逻辑回归 2.描述:假设你是某大学招生主管,你想根据两次考试的结果决定每个申请...
    99+
    2022-11-12
  • python怎么实现梯度下降求解逻辑回归
    今天小编给大家分享一下python怎么实现梯度下降求解逻辑回归的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。线性回归1.线性...
    99+
    2023-07-06
  • 在R语言中实现Logistic逻辑回归的操作
    逻辑回归是拟合回归曲线的方法,当y是分类变量时,y = f(x)。典型的使用这种模式被预测Ÿ给定一组预测的X。预测因子可以是连续的,分类的或两者的混合。 R中的逻辑回归实现...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作