Я хочу реализовать линейную регрессию в python, без scikit-learn, но я не знаю, почему, переменная error всегда увеличивается и это не должно, и я думаю, что, возможно, проблема в формуле, но я не где.
В порядке ли algorthm?
def linear_regression(X, y, learning_rate=0.01, max_num_iterations=500, opt=True):
# Your code goes here
# Your code goes here
w = np.zeros(len(X[0]))
error=0
gradient=X
variable =X
print(f"X:{X}")
for a in range(max_num_iterations):
o = np.sum(X*w)
error = y-o
print(f"sum1:{np.sum(X*w)}")
print(f"y:{y}")
print(f"error: {error}")
print (f"gradient1: {gradient}")
print(f"w: {w}")
for i in range(800):
gradient[i][0]=-X[i][0]*error[i]
gradient[i][1]=-X[i][1]*error[i]
gradient=-learning_rate*gradient
w=w+gradient
return w