import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
rng = np.random.default_rng(0)
X = rng.uniform(0, 1, size=(200,1))
y = 4*X[:,0] + 1 + 0.2*rng.standard_normal(200)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.25, random_state=42)
model = LinearRegression().fit(Xtr, ytr)
yhat = model.predict(Xte)
print('Coefficients:', model.coef_, 'Intercept:', model.intercept_)
print('R^2:', r2_score(yte, yhat))