如何在 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 中执行其他常见任务: