%matplotlib inline
from matplotlib import rcParams
# figure size in inches
rcParams['figure.figsize'] = 20,8
from sklearn import datasets
from sklearn.model_selection import cross_val_predict
from sklearn import linear_model
import matplotlib.pyplot as plt
lr = linear_model.LinearRegression()
boston = datasets.load_boston()
y = boston.target
# cross_val_predict returns an array of the same size as `y` where each entry
# is a prediction obtained by cross validation:
predicted = cross_val_predict(lr, boston.data, y, cv=10)
fig, ax = plt.subplots()
ax.scatter(y, predicted, color=(0.1,0.7,0.1,0.28))
ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=1)
ax.set_xlabel('Measured')
ax.set_ylabel('Predicted')
plt.show()
# compare this to the usual approach
lr.fit(boston.data,y)
p = lr.predict(boston.data)
fig, ax = plt.subplots()
ax.scatter(y, p, color = (0.1,0.1,0.71,0.28))
ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=1)
ax.set_xlabel('Measured')
ax.set_ylabel('Predicted')
plt.show()