Skip to content
Advertisement

Python function returns nan

I have written function for gradient descent and used pandas to read csv file. But when I use data read by pandas, the function returns “nan”. I can’t understand why.

Thanks in advance.

def gradient_descent(X, Y, w, b, alpha):

    dl_dw = 0.0
    dl_db = 0.0

    N = len(X)

    for i in range(N):
        dl_dw += -1*float(X[i]) * (float(Y[i]) - (w*float(X[i]) + b))
        dl_db += -1*(float(Y[i]) - (float(w*X[i]) + b))


    w = w - (1/float(N)) * dl_dw * alpha
    b = b - (1/float(N)) * dl_db * alpha

return w, b

import pandas as pd                         
data = pd.read_csv("train.csv")               
print(data.head())                          

X = data.iloc[:, 0].values.reshape(-1, 1) 
Y = data.iloc[:, 1].values.reshape(-1, 1)

print(gradient_descent(X, Y, 0.0, 0.0, 100))

Advertisement

Answer

It might be a vanishing gradient problem. You gradients might be very close or even zero. Try to initialize your weights with non zero values.

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement