在计算最小二乘法时,为什么要加一的向量?

2024-04-26 12:40:30 发布

您现在位置:Python中文网/ 问答频道 /正文

阅读scipy最小二乘法文档https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html说明:

We can rewrite the line equation as y = Ap, where A = [[x 1]] and p = [[m], [c]]. Now use lstsq to solve for p:

A = np.vstack([x, np.ones(len(x))]).T

A array([[ 0., 1.], [ 1., 1.], [ 2., 1.], [ 3., 1.]])

为什么要将行重写为y = Ap,并将向量行添加到新变量A。仅从x,y值估计的最小二乘法,那么为什么要加1的向量呢?你知道吗


Tags: 文档httpsorgnumpydocsdocnpscipy
1条回答
网友
1楼 · 发布于 2024-04-26 12:40:30

假设你有5个x值和相应的5个y值,你想通过线性回归来拟合。你可以写y1=m*x1 + cy2=m*x2 + c。。。y5=m*x5 + c其中m是线性拟合的斜率,c是y截距(y值为x=0)。表示这是一个矩阵形式,因为您有5个x值,您的A矩阵将有5行,每行有两个条目:x值和常量1来自上述5个方程组。因此,在A = np.vstack([x, np.ones(len(x))]).T中,可以使用np.ones(len(x))添加与x值一样多的值。一个一的向量的引入只是一组方程的通常矩阵表示的结果。你知道吗

为了获得更多的直觉,只需写下我在下面提到的5个方程,然后以矩阵形式重新写下它们,你就会明白为什么你需要一个在A中的向量。你知道吗

相关问题 更多 >