1

我有一种情况,两个或多个带有一些系数的 nd 数组应该(大致)加起来到第三个数组。

array1*c1 + array2*c2 ... = array3

我正在寻找使前两个数组最近似的c1and 。我确信 scipy 中存在某种方法,但我不确定从哪里开始。是否有我应该开始的特定模块?c2array3

4

2 回答 2

3

numpy.linalg.lstsq为您解决这个问题。scikit-learnStatsModels都提供了该函数的面向对象的包装器以及更高级的回归模型。

(免责声明:我是一名 scikit-learn 开发人员,所以这不是有史以来最公正的建议。)

于 2012-09-25T14:07:27.570 回答
0

这只是线性回归(http://en.wikipedia.org/wiki/Ordinary_least_squares)。

让矩阵A有 列array1, array2, ... 让向量aarray3并且x是 列向量[c1,c2,...]'

你想解决问题min_{x} (Ax-a)^2

取导数并将其设置为零给出0=A'Ax-A'a,这给出了解决方案x=(A'A)^{-1}A'a

在 numpy 中,这是numpy.linalg.solve(numpy.dot(A.T,A),numpy.dot(A.T,a)).

于 2012-09-25T13:31:34.353 回答