如何将简单线性回归与梯度下降并行化-使用numpy?

时间:2018-10-02 04:57:46

标签: python numpy machine-learning linear-regression gradient-descent

我在使用numpy并行化下面的for循环时遇到麻烦(get_new_weights)。第一次尝试在update_weights中使用df_dm时,权重是完全错误的。在第二次尝试df_dm时,我的体重超过了最佳体重。

注意-偏差是一个数字,权重是一个数字(一个变量线性回归),X是形状(442,1),y是形状(442,1)。还要注意,更新我的偏见项在update_weights中非常有效-它只是更新我遇到麻烦的权重。

.s2

这是我用来更新体重和偏见的方程式: This is the equation for updating my weight and bias

1 个答案:

答案 0 :(得分:1)

感谢所有看过我的问题的人。我松散地使用术语并行化来指代我正在寻找的运行时优化,因为它消除了对for循环的需求。这个问题的答案是:

df_dm = (1/len(X)) * np.dot((-2*X).T, (y-(weight*X+bias)))

这里的问题是确保由中间步骤生成的所有数组都具有正确的形状。对于那些对这两个函数之间的运行时差异感兴趣的人:for循环花费了十倍的时间。