У меня есть этот алгоритм градиентного спуска для многомерной регрессии, но он вызывает
ValueError: operands could not be broadcast together with shapes (3,) (3,140).
Я проверил другие ответы об ошибках широковещания в стеке потока и документацию, в которой говорится, что размеры матриц должны быть одинаковыми илиматрицы должно быть 1. Но как я могу сделать свою тэту того же измерения.
Пожалуйста, не отмечайте его как дубликат.
У моего x тусклое (140,3), у - (140,1), альфа = 0,0001
def find_mse(x,y,theta):
return np.sum(np.square(np.matmul(x,theta)-y))*1/len(x)
def gradientDescent(x,y,theta,alpha,iteration):
theta=np.zeros(x.shape[1])
m=len(x)
gradient_df=pd.DataFrame(columns=['coeffs','mse'])
for i in range(iteration):
gradient = (1/m) * np.matmul(x.T, np.matmul(x, theta) - y)
theta = np.mat(theta) - alpha * gradient
cost = compute_cost(X, y, theta)
gradient_df.loc[i] = [theta,cost]
return gradient_df