实施随机梯度下降 Python

Implementing Stochastic Gradient Descent Python

我一直在尝试按照以下等式将随机梯度下降作为推荐系统的一部分来实现:

我有:

for step in range(max_iter):
        e = 0
        for x in range(len(R)):
            for i in range(len(R[x])):
                if R[x][i] > 0:
                    exi = 2 * (R[x][i] - np.dot(Q[:,i], P[x,:]))
                    qi, px = Q[:,i], P[x,:]

                    qi += _mu_2 * (exi * px - (2 * _lambda_1 * qi))
                    px += _mu_1 * (exi * qi - (2 * _lambda_2 * px))

                    Q[:,i], P[x,:] = qi, px

我期望的输出不太正确,但我不能真正指出它。 请帮助我确定我的代码中存在的问题。

非常感谢您的支持

当你更新qipx时,你应该交换mu1mu2.