import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import pickle

data = pd.read_csv("student-mat.csv", sep=';')

print(data.head())

data = data[['G1', 'G2', 'G3', 'studytime', 'failures', 'absences']]
print(data.head())

predict = 'G3'

x=np.array(data.drop([predict], 1))
y = np.array(data[predict])

best = 0

for i in range(100):
    x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.1)
    reg = LinearRegression()

    reg.fit(x_train, y_train)
    
    acc = reg.score(x_test, y_test)
    print(acc)
    
    
    if acc > best:
        best = acc
        with open("studentsmodel.pickle", "wb") as f:
            pickle.dump(reg, f)
print()
print(best)


print(best)

