linreg = LinearRegression()

data = parse_data('train.csv', train=False)

W_temp = []
n_iter = 1000
for i in range(n_iter):
    np.random.shuffle(data)

    X_train = data[0:280, 0:len(data[0]) - 1]
    y_train = data[0:280, len(data[0]) - 1:]

    if algo == "gradient_descent":
        W_temp.append(linreg.gradient_descent(X_train, y_train))
    else:
        W_temp.append(linreg.closed_form_solution(X_train, y_train))

W_temp = np.array(W_temp)
W = []
for j in range(W_temp.shape[1]):
    sm = 0
    for i in range(n_iter):
        sm += W_temp[i][j][0]
    sm /= n_iter
    W.append(sm)

W = np.array(W)
W = W.reshape((len(W), 1))

X_test, y_pred = parse_data('test.csv', train=False), []
X_test = linreg.normalize_data(X_test)
Ejemplo n.º 2
0
        for hour in range(24):
            row_start = 18 * (month * (20) + day)
            row_end = 18 * (month * (20) + day + 1)
            sample[:, day * 24 + hour] = raw_data[row_start:row_end, hour]
    month_data[month] = sample

x_train = np.zeros(shape=(12 * 471, 18 * 9))
y_train = np.zeros(shape=(12 * 471, 1))

for month in range(12):
    for hour in range(471):
        x_train[hour + month * 471, :] = month_data[month][:, hour:hour +
                                                           9].reshape(1, -1)
        y_train[hour + month * 471, 0] = month_data[month][9, hour + 9]

x_test_data = np.array([[1, 3, 4], [4, 5, 3], [4, 1, 4]])
y_test_data = np.array([1, 2, 3])

model = LR()
model.load_data(x_train, y_train)
model.z_score_normal()
w_grad, b_grad = model.train(optimizer='Adam',
                             lr=0.2,
                             batch_size=int(len(x_train) / 1),
                             epoch=2000)
w_ofs, b_ofs = model.closed_form_solution()

for i in range(len(w_grad)):
    print(w_grad[i], w_ofs[i])
print(b_grad, ' ', b_ofs)