广告
返回顶部
首页 > 资讯 > 精选 >pytorch如何实现多项式回归
  • 111
分享到

pytorch如何实现多项式回归

2023-06-14 11:06:40 111人浏览 独家记忆
摘要

这篇文章主要为大家展示了“PyTorch如何实现多项式回归”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“pytorch如何实现多项式回归”这篇文章吧。pytorch实现多项式回归,供大家参考,具

这篇文章主要为大家展示了“PyTorch如何实现多项式回归”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“pytorch如何实现多项式回归”这篇文章吧。

pytorch实现多项式回归,供大家参考,具体内容如下

一元线性回归模型虽然能拟合出一条直线,但精度依然欠佳,拟合的直线并不能穿过每个点,对于复杂的拟合任务需要多项式回归拟合,提高精度。多项式回归拟合就是将特征的次数提高,线性回归的次数使一次的,实际我们可以使用二次、三次、四次甚至更高的次数进行拟合。由于模型的复杂度增加会带来过拟合的风险,因此需要采取正则化损失的方式减少过拟合,提高模型泛化能力。希望大家可以自己动手,通过一些小的训练掌握pytorch(案例中有些观察数据格式的代码,大家可以自己注释掉)

# 相较于一元线性回归模型,多项式回归可以很好的提高拟合精度,但要注意过拟合风险# 多项式回归方程 f(x) = -1.13x-2.14x^2+3.12x^3-0.01x^4+0.512import torchimport matplotlib.pyplot as pltimport numpy as np# 数据准备(测试数据)x = torch.linspace(-2,2,50)print(x.shape)y = -1.13*x - 2.14*torch.pow(x,2) + 3.15*torch.pow(x,3) - 0.01*torch.pow(x,4) + 0.512plt.scatter(x.data.numpy(),y.data.numpy())plt.show()# 此时输入维度为4维# 为了拼接输入数据,需要编写辅助数据,输入标量x,使其变为矩阵,使用torch.cat拼接def features(x): # 生成矩阵    # [x,x^2,x^3,x^4]    x = x.unsqueeze(1)    print(x.shape)    return torch.cat([x ** i for i in range(1,5)], 1)result = features(x)print(result.shape)# 目标公式用于计算输入特征对应的标准输出# 目标公式的权重如下x_weight = torch.Tensor([-1.13,-2.14,3.15,-0.01]).unsqueeze(1)b = torch.Tensor([0.512])# 得到x数据对应的标准输出def target(x):    return x.mm(x_weight) + b.item()# 新建一个随机生成输入数据和输出数据的函数,用于生成训练数据def get_batch_data(batch_size):    # 生成batch_size个随机的x    batch_x = torch.randn(batch_size)    # 对于每个x要生成一个矩阵    features_x = features(batch_x)    target_y = target(features_x)    return features_x,target_y# 创建模型class PolynomialRegression(torch.nn.Module):    def __init__(self):        super(PolynomialRegression, self).__init__()        # 输入四维度 输出一维度        self.poly = torch.nn.Linear(4,1)    def forward(self, x):        return self.poly(x)# 开始训练模型epochs = 10000batch_size = 32model = PolynomialRegression()criterion = torch.nn.MSELoss()optimizer = torch.optim.SGD(model.parameters(),0.001)for epoch in range(epochs):    print("{}/{}".fORMat(epoch+1,epochs))    batch_x,batch_y = get_batch_data(batch_size)    out = model(batch_x)    loss = criterion(out,batch_y)    optimizer.zero_grad()    loss.backward()    # 更新梯度    optimizer.step()    if (epoch % 100 == 0):        print("Epoch:[{}/{}],loss:{:.6f}".format(epoch,epochs,loss.item()))    if (epoch % 1000 == 0):        predict = model(features(x))        print(x.shape)        print(predict.shape)        print(predict.squeeze(1).shape)        plt.plot(x.data.numpy(),predict.squeeze(1).data.numpy(),"r")        loss = criterion(predict,y)        plt.title("Loss:{:.4f}".format(loss.item()))        plt.xlabel("X")        plt.ylabel("Y")        plt.scatter(x,y)        plt.show()

拟合结果:

pytorch如何实现多项式回归

pytorch如何实现多项式回归

pytorch如何实现多项式回归

pytorch如何实现多项式回归

以上是“pytorch如何实现多项式回归”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: pytorch如何实现多项式回归

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

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

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

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

下载Word文档
猜你喜欢
  • pytorch实现多项式回归
    pytorch实现多项式回归,供大家参考,具体内容如下 一元线性回归模型虽然能拟合出一条直线,但精度依然欠佳,拟合的直线并不能穿过每个点,对于复杂的拟合任务需要多项式回归拟合,提高精...
    99+
    2022-11-12
  • pytorch如何实现多项式回归
    这篇文章主要为大家展示了“pytorch如何实现多项式回归”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“pytorch如何实现多项式回归”这篇文章吧。pytorch实现多项式回归,供大家参考,具...
    99+
    2023-06-14
  • Python如何实现多项式回归
    今天就跟大家聊聊有关Python如何实现多项式回归,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几...
    99+
    2023-06-26
  • pytorch实现线性回归以及多元回归
    本文实例为大家分享了pytorch实现线性回归以及多元回归的具体代码,供大家参考,具体内容如下 最近在学习pytorch,现在把学习的代码放在这里,下面是github链接 直接附上g...
    99+
    2022-11-12
  • pytorch实现线性回归和多元回归的方法
    本篇内容介绍了“pytorch实现线性回归和多元回归的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近在学习pytorch,现在把学习...
    99+
    2023-06-14
  • 人工智能-Python实现多项式回归
    目录1、概述1.1 有监督学习1.2 多项式回归2 概念3 案例实现——方法1 3.1 案例分析3.2 代码实现 3.3 结果 ...
    99+
    2022-11-12
  • PyTorch实现多维度特征输入逻辑回归
    目录一、实现过程1、准备数据2、设计模型4、训练过程5、结果展示二、参考文献一、实现过程 1、准备数据 本文数据采取文献[1]给出的数据集,该数据集前8列为特征,最后1列为标签(0/...
    99+
    2022-11-13
  • Python基于PyTorch实现循环神经网络回归模型(LSTM回归算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。 1.项目背景 LSTM网络是目前更加通用的循环神经网络结构,全称为Long Short-Term Memor...
    99+
    2023-10-01
    python rnn pytorch 循环神经网络回归模型 深度学习
  • Python基于PyTorch实现卷积神经网络回归模型(CNN回归算法)项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。   1.项目背景 卷积神经网络,简称为卷积网络,与普通神经网络的区别是它的卷积层内的神经元只覆盖输入特征局部范...
    99+
    2023-09-18
    python pytorch cnn 卷积神经网络回归模型 深度学习
  • 如何在R语言项目中实现多元线性回归
    这期内容当中小编将会给大家带来有关如何在R语言项目中实现多元线性回归,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。输入数据先把数据用excel保存为csv格式放在”我的文档”文件夹打开R软件,不用新建,直...
    99+
    2023-06-08
  • R语言如何实现多元线性回归
    R小白几天的摸索 红色为输入,蓝色为输出 输入数据 先把数据用excel保存为csv格式放在”我的文档”文件夹 打开R软件,不用新建,直接写 回归计算 求三个平方和 置信区间...
    99+
    2022-11-11
  • R语言如何实现不带常数项的回归
    这篇文章将为大家详细讲解有关R语言如何实现不带常数项的回归,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。不带常数项(截距项)的回归R中的lm()函数是默认包含常数项的,可...
    99+
    2022-10-19
  • Python回归树如何实现
    本篇内容介绍了“Python回归树如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先导入库import pandas&nb...
    99+
    2023-06-30
  • Python如何实现岭回归
    这篇文章主要介绍“Python如何实现岭回归”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现岭回归”文章能帮助大家解决问题。1 概述1.1 线性回归对于一般地线性回归问题,参数的求...
    99+
    2023-06-26
  • R语言如何实现LASSO回归
    小编给大家分享一下R语言如何实现LASSO回归,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Lasso回归又称为套索回归,是Robert Tibshirani于1...
    99+
    2023-06-09
  • R语言多元线性回归是什么及如何实现
    这篇文章主要介绍“R语言多元线性回归是什么及如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R语言多元线性回归是什么及如何实现”文章能帮助大家解决问题。一、模型简介一元线性回归是一个主要影响因...
    99+
    2023-07-02
  • C语言如何实现多项式相加
    这篇文章主要介绍“C语言如何实现多项式相加”,在日常操作中,相信很多人在C语言如何实现多项式相加问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言如何实现多项式相加”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • R语言如何实现前向逐步回归
    这篇文章主要介绍了R语言如何实现前向逐步回归,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前向逐步回归原理前向逐步回归的过程是:遍历属性的一列子集,选择使模型效果最好的那一列...
    99+
    2023-06-20
  • Oracle 11g如何实现归档模式
    这篇文章将为大家详细讲解有关Oracle 11g如何实现归档模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在Oracle 11g,开启archive log模式时,默...
    99+
    2022-10-19
  • c++显式栈如何实现递归
    本篇文章为大家展示了c++显式栈如何实现递归,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言在大学的课上老师有教过,也就是用循环来实现递归,现在自己回顾一下并且做一下记录。1. 递归假设有函数A,...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作