如何使用matplotlib

我正在使用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绘制总共两个数字:

  1. x轴是i,y轴是根据每个i的对数(成本)值。

  2. x轴是i,y轴是W中每个元素值的曲线,W是5 * 1向量。因此,此图中将有5行。

顺便说一句,总迭代次数为200,这意味着x轴上的值范围应为0-200。

我的原始解决方案在代码中有注释,但实际上绘制的是很多数字,看起来像:

如何使用matplotlib

如何使用matplotlib

正确的方法是什么?

haihaome1 回答:如何使用matplotlib

您可以将它们附加到xy轴的列表中

x = []
y = []

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)
        x.append(i)
        y.append(current_cost)
    return [b,W]

然后将其绘制为:

plt.figure(figsize=(8,4))
plt.plot(x,y,linewidth=1)
plt.xlabel("iteration")
plt.ylabel("log(L)")
plt.title("log(L) After " + str(x[-1]) + "th iteration")
plt.show()

enter image description here

本文链接:https://www.f2er.com/3153601.html

大家都在问