πŸ“„ 211220_DL_(2)(3)

🐿️cost ν•¨μˆ˜

x_data=[1,2,3]
y_data=[1,2,3]
def cost(x, y, w):
    c=0
    for i in range (len(x)):
        hx=w*x[i]
        c= c+(hx-y[i])**2
    return c/len(x)

w λŠ” 기울기 (κ°„νŽΈν•˜κ²Œ ν•˜κΈ° μœ„ν•΄μ„œ μ ˆνŽΈμ€ μƒλž΅μ€‘) y=ax ν˜•μ‹

print(cost(x_data, y_data, -1))
print(cost(x_data, y_data, 0))
print(cost(x_data, y_data, 1))
print(cost(x_data, y_data, 2))
print(cost(x_data, y_data, 3))

18.666666666666668

4.666666666666667

0.0

4.666666666666667

18.666666666666668

β†’ wκ°€ 1μΌλ•Œ costκ°€ κ°€μž₯ 적은 것을 μ•Œ 수 있음

for w in np.linspace(-3, 5, 50):
    c=cost(x_data, y_data,w)
    print("w=",w, "cost",c)
    plt.plot(w,c,'ro')
plt.xlabel("w")
plt.ylabel('cost')
plt.show()
w= -3.0 cost 74.66666666666667
w= -2.836734693877551 cost 68.69582118561709
w= -2.673469387755102 cost 62.97376093294461
w= -2.510204081632653 cost 57.500485908649175
.
.
.
w= 4.673469387755102 cost 62.97376093294459
w= 4.836734693877551 cost 68.69582118561709
w= 5.0 cost 74.66666666666667

Untitled