波士顿房价预测是一个经典的机器学习任务。根据预测结果是否连续的是实数值,还是离散的标签,区分为回归任务和分类任务。因为房价是连续值,所以房价预测显然是回归任务。用最简单的神经网络模型。
1输入:
读取数据,包含数据形状变化,数据集划分,数据归一化,最后封装成dataloader。
2前向(模型设计):
取出第一条样本,特征向量与参数向量相乘,初始化偏移量。封装成class network。通过w,b求得预测值y。
3计算loss(训练配置):
先用均方误差作为评价真实值和预测值的差距(network类定义一个loss(y,y')),
4后向(计算梯度)
然后使用梯度下降法,Numpy进行梯度计算,随机梯度下降法训练模型
5更新权重(确定损失函数更小的点)
沿着梯度的反方向移动一小步,找到下一个p1观察损失函数变化。(定义步长,更新参数)
net.w[5] = net.w[5] - eta * gradient_w5(更新参数所用代码)
最后封装train函数(前向计算输出、根据输出和真实值计算Loss、基于Loss和输入计算梯度、根据梯度更新参数值)。直到loss函数最小。