我正在尝试实现线性回归,但是当我绘制成本时,该值最初会下降,然后在大约10,000次迭代后开始非常缓慢地开始增加。奇怪的是,随着迭代次数的增加,该行更适合数据,但成本仍在上升。
我假设我在计算成本或绘制成本时做错了事,但我无法弄清楚。我尝试了较小的学习率,但发生的事情却相同,只是速度较慢。
我认为您的成本函数是错误的。您正在使用x_pred
获取y_predict
,然后将y_predict
与y_actual
进行比较,但y_actual
值对应于x
,而不是x_pred
您的代码:
def cost_fxn(alpha, beta, y_actual):
cost = 0
y_predict = y_pred(alpha, beta, x_pred)
for i in range(100):
sq_error = (y_actual[i] - y_predict[i])**2
cost += sq_error
return cost/(2*100)
应该是:
def cost_fxn(alpha, beta, y_actual):
cost = 0
y_predict = y_pred(alpha, beta, x)
for i in range(100):
sq_error = (y_actual[i] - y_predict[i])**2
cost += sq_error
return cost/(2*100)