1. ホーム
  2. python

[解決済み] numpy の行列の二乗和

2022-02-03 08:14:42

質問

行に観測値(異なるpHでの測定値)、列にデータポイント(時間経過による濃度)を持つ行列があります。つまり、1つの行は1つのpHの異なるデータ点から構成されています。

私はデータにODEを当てはめたいと思っています。そこで、コスト関数を定義し、すべての観測値の二乗和を計算したいと思います。この行列の二乗和を求めると、次のようになります。

res = y - yhat                        # calculate residuals
ssq = np.diag(np.dot(res.T,res))      # sum over the diagonal

というのは正しいのでしょうか?

解決方法は?

最後の配列の和を取るのであれば、それは正しいでしょう。 しかし、これも不必要に複雑です(非対角要素もnp.dotで計算されるからです)。 もっと早いのは

ssq = np.sum(res**2)

実験ごとにssdが欲しいということであれば、可能です。

ssq = np.sum(res**2, axis=1)