预测和线性类

17 Mar 2025 | 4 分钟阅读

在此,我们简要介绍了如何实现基于机器学习的算法来训练线性模型,以拟合一组数据点。

为此,无需具备任何深度学习的先验知识。我们将从讨论监督学习开始。我们将讨论监督学习的概念及其与它的关系。

机器学习

机器学习是人工智能的一种应用。ML(机器学习)使系统能够自动地通过经验学习和改进。 ML 专注于计算机程序的开发,这些程序可以访问数据并自行学习。

学习过程始于数据或观察,例如示例、说明或直接经验,以便寻找数据中的模式,并根据我们提供的示例在未来做出更好的决策。其目的是允许计算机在没有人为干预的情况下自动学习并相应地调整操作。

Prediction and linear class

监督式学习

顾名思义,它表示存在一个作为老师的监督者。在监督学习中,我们使用良好标记的数据来训练或教导机器。良好标记意味着一些数据已经用正确的答案标记。之后,为机器提供一组新数据。监督学习算法分析训练数据,并从标记的数据中产生正确的结果。

监督学习分为两大类算法

  1. 分类:分类问题是指输出变量或简称输出是“红色”或“蓝色”或“患病或未患病”等类别的问题。
  2. 回归:回归问题是指输出变量或简称输出是“工资”或“体重”等实数或连续值的问题。

无监督式学习

在无监督学习中,机器使用未经分类或标记的信息进行训练,并允许算法在没有指导的情况下对该信息采取行动。在无监督学习中,任务是根据相似性、差异和模式对未排序的信息进行分组,而无需任何先前的数据训练。

没有监督者,这意味着不会给机器提供任何训练。因此,机器被限制为自行找到隐藏的结构。

无监督学习分为两大类算法

  • 聚类:聚类问题是指我们必须发现数据中固有分组的问题。例如按课程或年龄行为对学生进行分组。
  • 关联:关联问题是指我们必须发现描述我们大部分数据的规则的问题,例如购买苹果的人也想购买香蕉。

进行预测(创建数据模型)

进行预测是构建线性回归模型的初始步骤。在线性回归模型中,我们使用监督学习,因为回归是它的第二大类。因此,学习者接受训练并利用与标记特征相关联的数据集,这些标记特征定义了我们训练数据的含义。

学习者能够在将新输入数据提供给机器之前预测相应的输出。

查找预测的步骤

  • 第一步是安装 torch 并将其导入以使用它。
  • 下一步是初始化变量 c 和 c 以了解线的方程。
  • 初始化线的方程,使得 y=w*x + b,其中 w 是斜率,b 是偏差项,y 是预测值。
  • 预测在 forward () 方法中计算。

让我们看一个例子来理解如何在线性回归中进行预测。

对于单个数据

输出

tensor([13.], grad_fn=<AddBackward0>)

Prediction and linear class

对于多个数据

输出

tensor([[13.],
        [16.],
        [19.]], grad_fn=<AddBackward0>)

Prediction and linear class

使用线性类进行预测

还有另一种绑定预测的标准方法。为此,我们必须导入 torch.nn 包的线性类。在此,我们使用 manual_seed() 方法来生成随机数。当我们使用线性类创建模型时,它会为线性类提供随机数值,这很有意义,因为要回忆。

让我们看一个如何使用模型和 manual_seed() 方法进行预测的示例。

对于单个数据

输出

<torch._C.Generator object at 0x000001FA018DB2B0>
Parameter containing:
tensor([-0.4414], requires_grad=True) Parameter containing:
tensor([[0.5153]], requires_grad=True)
tensor([0.5891], grad_fn=<AddBackward0>)

Prediction and linear class

对于多个数据

输出

<torch._C.Generator object at 0x00000210A74ED2B0>
Parameter containing:
tensor([-0.4414], requires_grad=True) Parameter containing:
tensor([[0.5153]], requires_grad=True)
tensor([[0.5891],
        [1.6197],
        [2.6502]], grad_fn=<AddmmBackward>)

Prediction and linear class