file_name = "DataSets/LinearRegression/ex1data1.txt"
data = pd.read_csv(file_name, names=['X', 'Y'])

#normalize Data
scalerX = StandardScaler().fit(data[['X']])
data['X'] = scalerX.transform(data[['X']])

scalerY = StandardScaler().fit(data[['Y']])
data['Y'] = scalerY.transform(data[['Y']])

train, test = train_test_split(data, test_size=0.3)
X_train = train['X']
Y_train = train['Y']
X_test = test['X']
Y_test = test['Y']
model = LinearRegression.GradientDescent(maxIterations=10000, alpha=0.1)
model.fit(one_dim_array_reshape(X_train.values),
          one_dim_array_reshape(Y_train.values))

# Plot regressão linear
predictions = [
    model.predict(x)
    for x in np.insert(one_dim_array_reshape(X_test.values), 0, 1, axis=1)
]
X_test = scalerX.inverse_transform(X_test)
Y_test = scalerY.inverse_transform(Y_test)
predictions = scalerY.inverse_transform(predictions)
plt.plot(X_test, Y_test, 'o', X_test, predictions)
plt.title('Regressão Linear (Gradiente Descendente)')
plt.xlabel('X')
plt.ylabel('Y')
Exemplo n.º 2
0
list_word, wordtext, allwords = pr.TextProcess(Training_data, 60)

with open("words.text", 'w') as txtfile:
    for i in range(len(wordtext)):
        txtfile.write(wordtext[i][0] + " " + str(wordtext[i][1]) + "\n")

x_train, y_train = pr.DatasetConstruct(Training_data, list_word, 68)
x_val, y_val = pr.DatasetConstruct(Validation_data, list_word, 68)
x_test, y_test = pr.DatasetConstruct(Test_data, list_word, 68)
#########################################
##Task 2: Linear Regression Forms##
##Gradient Descent
t = time()
net_g, error_t = lin.GradientDescent(x_train,
                                     y_train,
                                     eps=0.00001,
                                     eta=0.00000001,
                                     beta=0.000001)
run = time() - t
print("Runtime: {}".format(run))
y_predtr = np.matmul(x_train, net_g)
y_predv = np.matmul(x_val, net_g)
y_predte = np.matmul(x_test, net_g)

acc_t = lin.mse(y_train, y_predtr)
acc_v = lin.mse(y_val, y_predv)
acc_te = lin.mse(y_test, y_predte)

print("Training MSE of gradient descent is: {}".format(acc_t))
print("Validation MSE of gradient descent is: {}".format(acc_v))
print("Test MSE of gradient descent is: {}".format(acc_te))