线性回归总结
线性回归模型就是解决回归任务的好起点,这些模型之所以受欢迎,是因为他们的拟合速度特别快,而且很容易解释。
1.简单的线性回归
直线拟合的模型方程为y = ax+b,其中a是直线斜率,b是直线截距。
首先导入常用程序库
%matplotlib inline
import matplotlib.pyplot as plt #引入绘图库
import seaborn as sns;sns.set()
import numpy as np #引入numpy库
从斜率为2、截距为-5的直线中抽取散点
rng = np.random.RandomState(1)#设置伪随机数生成器,产生一个随机状态种子
x = 10*rng.rand(50)#随机生成50个数
y = 2*x - 5 + rng.randn(50)#返回秩为1的数组,其中有50个随机数
plt.scatter(x,y)#设置为散点图
结果如下:
可以用Scikit-Learn的LinearRegression评估器来拟合数据,并获得最佳拟合直线
代码如下:
from sklearn.linear_model import LinearRegression
model = LinearRegression(fit_intercept = True)#True代表计算模型的截距,False代表不计算
model.fit(x[:,np.newaxis],y)
xfit = np.linspace(0,10,1000)#在0-10区间内等分成1000个数
yfit = model.predict(xfit[:,np.newaxis])#预测值
plt.scatter(x,y)#设置散点图
plt.plot(xfit,yfit)#绘制图
结果如下
可以查看模型的斜率和截距来检验是否与真实值接近
print("Model slope:",model.coef_[0])
print("Model intercept:",model.intercept_)
Model slope: 2.0272088103606944
Model intercept: -4.9985770855532
可以看出与真实值还算是比较接近的。