如何在 numpy 中执行最小二乘拟合(带有示例)


最小二乘法是我们可以用来找到最适合给定数据集的回归线的方法。

我们可以使用 NumPy 中的linalg.lstsq( ) 函数来执行最小二乘调整。

以下分步示例展示了如何在实践中使用此功能。

第1步:输入X和Y的值

让我们首先创建以下 NumPy 数组:

 import numpy as np

#define x and y arrays
x = np. array ([6, 7, 7, 8, 12, 14, 15, 16, 16, 19])

y = np. array ([14, 15, 15, 17, 18, 18, 19, 24, 25, 29])

步骤 2:执行最小二乘平差

我们可以使用以下代码来执行最小二乘拟合并找到最“适合”数据的行:

 #perform least squares fitting
n.p. linalg . lstsq (np. vstack ([x, np. ones ( len (x))]). T , y, rcond= None )[ 0 ]

array([0.96938776, 7.76734694])

结果是一个包含最佳拟合线的斜率截距值的表格。

从结果我们可以看出:

  • 斜率: 0.969
  • 抢断: 7,767

使用这两个值,我们可以写出最佳拟合线的方程:

ŷ = 7.767 + 0.969x

第 3 步:解释结果

以下是如何解释最佳拟合线:

  • 当 x 为 0 时,y 的平均值为7.767
  • x 每增加一个单位,y 平均增加0.969

我们还可以使用最佳拟合线根据 x 的值来预测 y 的值。

例如,如果 xa 的值为 10,那么我们预测 y 的值为17.457

  • ŷ = 7.767 + 0.969x
  • ŷ = 7.767 + 0.969(10)
  • ŷ = 17.457

其他资源

以下教程解释了如何在 NumPy 中执行其他常见任务:

如何从 NumPy 数组中删除特定元素
如何获取 NumPy 数组中的最大值索引
如何用值填充 NumPy 数组

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注