To evaluate how well a trained model performs on unseen data,
you gotta split the original data into separate training and test sets.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test= train_test_split(features_all,pred_var,test_size=0.3, random_state=42)
With this you randomly split the features and y arrays into 30% test data and 70% training data. Then, you fit your regression model, as follows
from sklearn.linear_model import LinearRegression
reg = LinearRegression()
reg.fit(X_train,y_train) # fit regressor to training data
y_pred = reg.predict(X_test) # predict on test data
Hope this help.