私は単純な線形回帰アルゴリズムの独自の実装を試みてきましたが、私は勾配降下にいくつかの問題があります。ここでpython線形回帰の実装
が、私はそれをコード化された方法は次のとおりです。
今def gradientDescentVector(data, alpha, iterations):
a = 0.0
b = 0.0
X = data[:,0]
y = data[:,1]
m = data.shape[0]
it = np.ones(shape=(m,2))
for i in range(iterations):
predictions = X.dot(a).flatten() + b
errors_b = (predictions - y)
errors_a = (predictions - y) * X
a = a - alpha * (1.0/m) * errors_a.sum()
b = b - alpha * (1.0/m) * errors_b.sum()
return a, b
、私は、これはより多くの変数をうまくスケールしませんが、私はちょうど最初の簡易版でしようとしていた、そしてそこからフォローアップを知っています。
しかし、私は(特定のデータセット上)〜90回の反復の後に無限値を取得し、いないよ。私はコーセラでコースを機械学習から勾配降下アルゴリズムを以下ました
これまでのところ私の頭を包み込むことができました。
私はnumpyの放送について学び、同じ結果を得ようとする前に、各値を反復しようとしました。
誰かがここで問題になる可能性のあることを明らかにすれば、それは素晴らしいことでしょう。
私は既に0.001にしようとしていましたが、うまくいきませんでしたが、さらに低い学習率、0.0000001で再試行しました。 私は何らかのエラー機能を使用していませんでしたが、後でそれを調べようとします。 – msk