循环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 Loop 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
但我的批次要快得多 - 一次迭代经过时间0.025356054306 vs我的随机性真的很慢 - 一次迭代经过时间1.0576338768
这里我的m是13,数据大约是500个元组。 谁能告诉我为什么这样?或者我在哪里陷入随机性? 谢谢!
data = [[], [], ...]
data = [record1, record2 ...]
record = [1, x1, x2, ... , x_m]
theta is vector
theta = np.zeros(m+1) //np is numpy