1

いくつかの係数を持つ 2 つ以上の nd 配列が (おおよそ) 3 番目の配列に追加される状況があります。

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

最初の 2 つの配列を最もよく近似するc1とを探しています。これを行う方法が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, ... せ、ベクトルを列ベクトルにしaます。array3x[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 に答える