我正在使用numpy在线性回归上练习梯度下降。这是我的梯度下降过程:
def batch_gradient_descent(data_points,initial_b,initial_W,lr,iterations):
b = initial_b
W = initial_W
for i in range(iterations): # Calcultes Gradient Descent for n-iterations.
b,W = gradient_step(b,W,data_points,lr)
current_cost = cost(b,data_points)
# plt.figure(figsize=(8,4))
# plt.plot(i,current_cost,linewidth=1)
# plt.xlabel("iteration")
# plt.ylabel("log(L)")
# plt.title("log(L) After "+str(i)+"th iteration")
plt.show()
return [b,W]
我只需要使用matplotlib绘制总共两个数字:
-
x轴是i,y轴是根据每个i的对数(成本)值。
-
x轴是i,y轴是W中每个元素值的曲线,W是5 * 1向量。因此,此图中将有5行。
顺便说一句,总迭代次数为200,这意味着x轴上的值范围应为0-200。
我的原始解决方案在代码中有注释,但实际上绘制的是很多数字,看起来像:
正确的方法是什么?