首页 > 解决方案 > 为什么我们要在 numpy 的 lstsq 函数中打一个?

问题描述

我试图了解lstsq函数与 numpy 在给定 和 的值下查找斜率和截距时的x使用y。通过上面链接的文档中的示例以及给定的xy

x = np.array([0, 1, 2, 3])
y = np.array([-1, 0.2, 0.9, 2.1])

我不明白其中的步骤:

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

m, c = np.linalg.lstsq(A, y, rcond=None)[0]

这里做了什么?有人可以向我解释一下文档示例使用np.ones函数的步骤吗?在这里做什么np.ones

标签: pythonnumpyleast-squares

解决方案


“那些”反映了截距。最小二乘解的一般形式是y=X beta系数beta:截距和斜率。

作为单个方程,它是

y_1 = beta_0 + beta_1 * x_1
y_2 = beta_0 + beta_1 * x_2
y_3 = beta_0 + beta_1 * x_3
.
.
.

如果您以矩阵形式编写它,则设计矩阵X(与 中相同y=X beta)包括一列。

有关更多信息,请在 Wikipedia https://en.wikipedia.org/wiki/Design_matrix上的简单回归示例中获取战利品


推荐阅读