Numpy 矢量化梯度下降法

Numpy 矢量化梯度下降法,numpy,vectorization,gradient-descent,Numpy,Vectorization,Gradient Descent,我已经在Numpy实现了这个梯度下降: def gradientDescent(X, y, theta, alpha, iterations): m = len(y) for i in range(iterations): h = np.dot(X,theta) loss = h-y theta = theta - (alpha/m)*np.dot(X.T, loss) #update theta return thet

我已经在Numpy实现了这个梯度下降:

def gradientDescent(X, y, theta, alpha, iterations):
    m = len(y)

    for i in range(iterations):
        h = np.dot(X,theta)
        loss = h-y
        theta = theta - (alpha/m)*np.dot(X.T, loss) #update theta

    return theta
虽然代码的其他部分在这里被完全矢量化,但在我看来,仍然存在一个for循环,这是不可能消除的;特别是在每一步都需要对θ进行更新,我不知道如何将其矢量化或以更有效的方式编写


感谢您的帮助

您无法对for循环进行矢量化,因为每次迭代都在更新状态。向量化主要用于计算时,每次迭代都计算一个独立的(在某种意义上)结果