何BigOの線形回帰?
-
21-09-2019 - |
質問
どれだけ大きなシステムでの試みい線形回帰すか?
具体的には:いシステム~300Kサンプルポイント~1200リニアます。これを計算機上で実現可能?
解決
あなたの行列式としてこれを表現することができます:
マトリックスは300K行1200列、係数ベクトル 1200x1で、RHSのベクトル 1200x1です。
あなたは乗算行列の転置によって両側は、あなたがのための方程式のシステムを使用している場合1200x1200だの未知数。あなたは、係数を解くためにLU分解またはあなたが好きな他のアルゴリズムを使用することができます。 (これは、最小二乗法がやっていることである。)
ビッグOの動作はO(M M のN)、M = 300Kとn = 1200あなたは転置、行列の乗算、LU分解を占めるだろうとのようなものであるので係数を得るために、そして前進後退代入ます。
他のヒント
の線形回帰として計算されます(X'X)^-1×'Y.
する場合は(n×k)マトリックス:
(X'X)O(n-k^2)時間-作(k×k)マトリクス
行列の逆転a(k×k)行列O(k^3)時間
(X'Y)O(n-k^2)時間-作(k×k)マトリクス
最後の行列積の計算の(k×k)行列O(k^3)時間
そのBig-O走行時はO(k^2*(n+k))
参照: http://en.wikipedia.org/wiki/Computational_complexity_of_mathematical_operations#Matrix_algebra
まゃんの時間をO(k^2*(n+k^0.376)の銅細工–Winogradアルゴリズムです。
の線形回帰とデフォルトモデルとして計算されます。誘導体の
RSS(W)=-2H^t y-HW)
そこで、解決のために
-2H^t y-HW)=0
そして、W値が
W=(H^t H)^-1H^2+y
場所:W:のベクトルのウェイト H:の機能マトリクスN-Dでの観測では、Dのサーバーにアップロード y:では実際の値
その複雑性
H^t H n D^2
の複雑さを改変するD^3
その複雑性
(H^t H)^-1 is n * D^2 + D^3