gpt4 book ai didi

python - 使用 Numpy 进行矩阵的最小二乘回归

转载 作者:行者123 更新时间:2023-12-01 05:58:45 27 4
gpt4 key购买 nike

我正在寻找从 N × M 矩阵和 N-1 矩阵中的一组已知的真实解来计算最小二乘线性回归。从那里,我想获得每个回归的斜率、截距和残差值。基本思想是,我知道应该为 N 行中的每个样本预测实际值,并且我想使用残差确定 M 列中的哪一组预测值最准确。

我不太擅长描述矩阵,所以这是一张图:

(N,M) matrix with predicted values for each row N
in each column of M...

##NOTE: Values of M and N are not actually 4 and 3, just examples
4 columns in "M"
[1, 1.1, 0.8, 1.3]
[2, 1.9, 2.2, 1.7] 3 rows in "N"
[3, 3.1, 2.8, 3.3]


(1,N) matrix with actual values of N


[1]
[2] Actual value of each sample N, in a single column
[3]

因此,为了清楚起见,我希望计算 (N,M) 矩阵和 (1,N) 矩阵的每一列之间的 lstsq 回归。

例如,之间的回归

[1]   and [1]
[2] [2]
[3] [3]

然后是之间的回归

[1]   and  [1.1]
[2] [1.9]
[3] [3.1]

依此类推,输出计算出的每个回归的斜率、截距和标准误差(平均残差)。

到目前为止,在 numpy/scipy 文档和网络上,我只找到一次计算一列的示例。我原以为 numpy 能够使用标准计算集合中每一列的回归

np.linalg.lstsq(arrayA,arrayB)

但这会返回错误

ValueError: array dimensions must agree except for d_0

我是否需要将列拆分为自己的数组,然后一次计算一个?我需要使用参数或矩阵运算来让 numpy 独立计算每列的回归吗?

我觉得应该更简单吧?我查遍了,似乎找不到任何人在做类似的事情。

最佳答案

也许你调换了A和b?

以下对我有用:

A=np.random.rand(4)+np.arange(3)[:,None]
# A is now a (3,4) array
b=np.arange(3)
np.linalg.lstsq(A,b)

关于python - 使用 Numpy 进行矩阵的最小二乘回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416981/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com