目标
学习如何使用一个变量实现线性回归模型。
导入需要的库
导入numpy库和matplotlib.pyplot模块,分别将其缩写成np,plt。
问题陈述
这是真实的训练集,[1.0,2.0]是房子的大小,[300,500]是房子的价格。通过该训练集拟合一个线性模型。
使用数组存储训练集的数据:
训练样本数量
由于我们要计算每一行训练样本的预测值,所以要知道一共有多少行训练样本,也就是求出m的值。
索引训练样本
绘制训练集的数据点
把训练集的每行训练样本,以数据点的形式绘制在图表里。
初始化w和b
设置模型需要的w,b,w,b实际上需要计算出来的,后续会讨论,不同的w,b会表示出不同的直线。
计算线性回归的预测值函数
每一行的训练样本都需要计算出一个预测值,因此m的作用体现出来了,用于循环。
- f_wb = np.zeros(m):为了方便存储每一行训练样本的预测值,因此需要创建一个初始值为0,元素数量为m个的数组。示例中的m=2,它就是这个样子:【0. 0.】
- w*x[i]+b:线性回归的计算公式,x[i]表示第一行训练样本的特征。
- f_wb[i]:存储第i-1行训练样本的预测值。
绘图线性回归预测值的图表
代码
绘制模型,蓝色线条没有拟合数据点,也就是说,模型预测的y值和真实的数据点y值差距很大。因为我们设置的w和b不合适。
尝试不同的w和b
由于给出了正确的w和b,线性回归模型才能够完美预测,但如果使用不同的w和b,例如更换成w=200和b=100,结果如何?
先修改w和b
输出结果
输出结果含义:按照我们初始化好的w和b的值,通过给定的x[1,2]和线性回归函数,计算出的预测值是准确的(预测值y帽[300,500]和训练集的y[300,500]),也就是说,我们的线性回归模型能够完美预测。
使用模型示例
经过上述的调整,我们找到了合适的w和b,因此我们的模型就可以用来预测房价了。