In [168]:
import numpy as np
csv = np.genfromtxt('train_data.csv', delimiter = ",")
size_data = len(csv[1:,:])
var0 = np.ones(size_data).reshape(1, size_data)
var = np.concatenate((var0, np.transpose(csv[1:, 0:4])))
target = csv[1:, 4]

In [169]:
theta = np.zeros(5)

In [170]:
def dif_cost(n):
    dJ = 0
    alpha = 0.5
    h = np.dot(theta, var)
    dJ = np.sum(np.dot((h - target), var[n, :]))
    dJ = alpha * dJ / size_data  
    return dJ

In [171]:
new_th = np.zeros(5)    
n_iter = 1000
for i in range(0, n_iter):
    for j in range(0, 5):
        new_th[j] = theta[j] - dif_cost(j)   
    theta = new_th

In [172]:
print(theta)


[ 1.66824986  0.71837337  3.12743084  0.42506237  1.2152172 ]

In [173]:
csv2 = np.genfromtxt('test_input.csv', delimiter = ",")
size_inp = len(csv2[1:,:])
inp_var0 = np.ones(size_inp).reshape(1, size_inp)
inp_var = np.concatenate((inp_var0, np.transpose(csv2[1:, 0:4])))

In [174]:
out_h = np.dot(theta, inp_var)

In [175]:
np.savetxt("test_output2.csv", out_h, delimiter=",")

In [ ]: