适合多个发行版

时间:2012-09-25 06:17:50

标签: python numpy scipy data-fitting

我的情况是两个或多个具有一些系数的nd数组应该(大致)加到第三个数组。

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

我正在寻找使前两个数组最接近c1的{​​{1}}和c2。我确定这样做的某种方式存在于scipy中,但我不知道从哪里开始。我应该从哪个特定模块开始?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

让矩阵A包含array1, array2, ...列 让向量aarray3x为列向量[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))