import numpy as np # 引入numpy库,主要用来做科学计算 import pandas as pd # 提供了大量库和标准数据模型,如series数据结构等 from sklearn import linear_model # 导入机器学习库里的线性回归模型 import matplotlib.pyplot as plt # 引用matplotlib库,主要用来画图
data = np.array([[152,51],[156,53],[160,54],[164,55],[168,57],[172,60], [176,62],[180,65],[184,69],[188,72]])
print(data.shape)
x,y = data[:,0].reshape(-1,1), data[:,1]
#plt.scatter(x,y,color=‘black’) #plt.xlabel(‘height(cm)’) #plt.ylabel(‘wright(kg)’) #plt.show()
model = linear_model.LinearRegression() model.fit(x,y)
coef = model.coef_ # 获取自变量系数 intercept = model.intercept_ # 获取截距 R2 = model.score(x,y) # 2阶方差 print(‘训练结果,斜率为:%.4f, 截距为: %.4f’ %(coef,intercept))
xtest = np.linspace(100,200,20) # 从1-200,取20个值,测试值x ytest = model.predict(xtest[:,np.newaxis]) #预测值
plt.scatter(x,y,marker=’.’,color=‘k’) #拟合前的样本散点图 plt.plot(xtest,ytest,color=‘r’) #拟合后的直线 plt.grid() plt.title(‘线性回归拟合直线’) plt.show()