import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
from sklearn.linear_model import LinearRegression
rng=np.random.RandomState(1)
xtrain=10*rng.rand(30)
ytrain=8+4*xtrain+rng.rand(30)
fig=plt.figure(figsize=(12,3))
ax1=fig.add_subplot(1,2,1)
plt.scatter(xtrain,ytrain,marker='.',color='k')
plt.grid()
plt.title("样本数据散点图")
model=LinearRegression()
model.fit(xtrain[:,np.newaxis],ytrain)
print(model.coef_)
print(model.intercept_)
xtest=np.linspace(0,10,1000)
ytest=model.predict(xtest[:,np.newaxis])
ax2=fig.add_subplot(1,2,2)
plt.plot(xtest,ytest,marker='',color='r')
plt.grid()
plt.title("线性回归拟合")
plt.plot(xtest,ytest,color='r',linestyle='--')
plt.scatter(xtrain,ytrain,marker='.',color='k')
ytest2=model.predict(xtrain[:,np.newaxis])
plt.plot([xtrain,xtrain],[ytrain,ytest2],color='gray')
plt.grid()
plt.title('误差线')
plt.show()