0

ループ 1: (確率的 - 予想されるより速い)

 for i in range(len(data)):
        x = data[i]
        for t in range(0, m):
            theta[t] -= my_lambda * (np.dot(theta, x) - y[i]) * x[t]

vs ループ 2: (バッチ - 遅くなることが予想される)

for t in range(0, m):
        temp = 0
        for i in range(len(data)):
            x = data[i]
            temp += (np.dot(theta, x) - y[i]) * x[t]
        theta[t] = theta[t] - my_lambda * temp / M

しかし、私のバッチははるかに高速です-1回の反復経過時間0.025356054306対私のストキャスティクスは本当に遅いです-1回の反復経過時間1.0576338768

ここで、私の m は 13 で、データは約 500 タプルです。なぜそうなのか誰にも教えてもらえますか?または、どこで確率論を台無しにしましたか? ありがとう!

編集1:

data = [[], [], ...]
data = [record1, record2 ...]
record = [1, x1, x2, ... , x_m]

theta is vector
theta = np.zeros(m+1) //np is numpy
4

0 に答える 0