波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的“Hello World”。与大家对房价的普遍认知基本相同,波士顿地区的房价受诸多因素影响。该数据集统计了13种可能影响房价的因素和该类型房屋的均价,期望构建一个基于13个因素进行房价预测的模型,如 图1 所示。

对于预测问题,可以根据预测输出的类型是连续的实数值,还是离散的标签,区分为回归任务和分类任务。因为房价是一个连续值,所以房价预测显然是一个回归任务。下面我们尝试用最简单的线性回归模型解决这个问题,并用神经网络来实现这个模型。
线性回归模型
在之前的文章中,我们详细地讲过线性回归的模型及计算公式,只不过,当时我们用的是模拟数据。文章详细请见《DJL-Java动手学深度学习之线性回归实现》
数据处理封装
为了数据加载方便,在这里,我把二维表格类数据进行了简单封装,可以方便地把一份数据通过比例切分成训练集和验证集,并通一做归一化处理《DJL-Java开发者动手学深度学习之归一化处理及源代码
》。详细代码如下:
ublic class DataPoint {
private NDArray data;
private NDArray trainingData;
private NDArray testData;
private NDArray lable;
private NDArray trainingLable;
private NDArray testLable;
private float ratio = 0.8F;
private MinMaxScaler dataScaler = new MinMaxScaler();
public DataPoint(NDArray data) {
this(data, 0.8F);
}
public DataPoint(NDArray data, float ration) {
this.ratio = ration;
this.data = data;
}
public DataPoint fit() {
System.out.println(data.getShape().get(0));
data = dataScaler.transform(data);//归一化
System.out.println(dataScaler.getMax());
System.out.println(dataScaler.getMin());
lable = data.get(":,-1:"); //最后一列
data = data.get(":,:-1"); //除去最后一列

本文介绍如何使用深度学习预测波士顿地区的房价,首先将房价预测问题定义为回归任务,接着阐述线性回归模型,并对数据进行处理和封装。通过构建简单的神经网络模型,实现了房价预测,最后总结了使用深度学习预测房价的基本步骤。
2万+

被折叠的 条评论
为什么被折叠?



