python - 为什么我们要在 numpy 的 lstsq 函数中打一个?
问题描述
我试图了解lstsq函数与 numpy 在给定 和 的值下查找斜率和截距时的x
使用y
。通过上面链接的文档中的示例以及给定的x
值y
,
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
?
解决方案
“那些”反映了截距。最小二乘解的一般形式是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上的简单回归示例中获取战利品
推荐阅读
- vba - Excel在工作簿中的最后一张工作表之后添加带有代码的工作表
- sql - 按 SQL 表中的出现次数过滤
- c++ - C++:为什么 unordered_set::find 比 find 快?
- c++ - Visual Studio 发布模式 exe 文件是否独立?
- php - .htaccess 将子目录重定向到它的 index.php 文件
- python - 缺少必需的位置参数:Python:self
- c# - webclient 不下载完整的文件
- arrays - 使用 for 循环加宽斐波那契花
- can-bus - CAN 套接字 - 句柄不是 ACK
- mysql - laravel 只获取重复数据的第一行