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 ループがあり、これを排除することは不可能に思えます。具体的には、各ステップで theta の更新が必要ですが、それをベクトル化する方法や、より効率的な方法で記述する方法がわかりません。
ご協力ありがとうございました