Pytorch线性回归

2025 年 3 月 29 日 | 阅读 3 分钟

线性回归是一种通过最小化距离来找到因变量和自变量之间线性关系的方法。

线性回归是一种监督式机器学习方法。这种方法用于对有序离散类别进行分类。在本节中,我们将了解如何构建一个模型,用户可以通过该模型预测因变量和自变量之间的关系。

简单来说,我们可以说两个变量之间的关系,即自变量因变量,被称为线性。假设 Y 是因变量,X 是自变量,则这两个变量的线性回归关系为

Y=AX+b

  • A 是斜率
  • b 是y 轴截距

初始状态

Linear Regression

最终状态

Linear Regression

要创建或学习基本的线性模型,需要理解三个基本概念。

1. 模型类

通常在需要时对所有内容进行编码并编写所有函数,这不是我们的目的。

编写数值优化库总是比编写所有代码和函数要好,但是如果我们构建在预先编写的库之上来完成事情,也可以提高业务价值。为此,我们使用 PyTorch 的 nn 包的实现。为此,我们必须首先创建一个单层。

线性层的使用

每个线性模块都根据输入计算输出,并且对于权重和偏差,它会保存其内部张量。

还有几个其他标准模块。我们将使用模型类格式,它有两个主要方法,如下所示

  1. Init: 用于定义线性模块。
  2. Forward: 借助转发方法进行预测,在此基础上我们将训练我们的线性回归模型

2. 优化器

优化器是 PyTorch 中最重要的概念之一。它用于优化我们的权重,以使我们的模型适合数据集。有几种优化算法,例如梯度下降和反向传播,它们可以优化我们的权重值并使我们的模型达到最佳拟合。

torch.optim 包实现了各种优化算法。要使用 torch.optim,您必须构造一个优化器对象,该对象将根据计算机梯度更新参数并将保持当前状态。对象的创建方式如下

所有优化器都实现了一个 step() 方法,该方法更新参数。 有两种使用它的方法

1) Optimizer.step()

这是一种非常简单的方法,并且受到许多优化器的支持。 使用 backward() 方法计算梯度后,我们可以调用 optimizer.step() 函数。

示例

2) Optimizer.step(closure)

有一些优化算法,例如 LBFGS共轭梯度 需要多次重新评估函数,因此我们必须将其传递到一个闭包中,该闭包允许它们重新计算您的模型。

示例

准则

准则是我们的损失函数,用于寻找损失。此函数是从 torch nn 模块中使用的。

示例

所需的功能和对象

  1. Import torch
  2. From torch.autagrad import Variable

我们需要定义一些数据并将它们以以下方式分配给变量

以下代码为我们提供了训练完整回归模型的预测。 只是为了理解我们如何实现代码以及我们使用什么函数来训练回归模型。

输出

epoch0,loss1.7771836519241333
epoch1,loss1.0423388481140137
epoch2,loss0.7115973830223083
epoch3,loss0.5608030557632446
.
.
.
.
epoch499,loss0.0003389564517419785
predict (after training) 4 tensor(7.9788)

Linear Regression

以下是用于训练完整回归模型的概念

  1. 进行预测
  2. 线性类
  3. 自定义模块
  4. 创建数据集
  5. 损失函数
  6. 梯度下降
  7. 均方误差
  8. 训练

以上所有要点对于理解如何训练回归模型至关重要。


下一个主题预测和线性类