基于密集连接神经网络的波士顿房价预测
摘 要
神经网络是从信息处理角度对人脑神经元网络进行抽象,建立某种模型,按不同的连接方式组成不同的网络。本文以波士顿房价这一经典数据集为基础,该数据集包含了住宅用地所占比例等13个特征,由于keras.datasets里内置了波士顿房价数据集,所以直接导入。接着对该数据集进行特征标准化,构建包含三层全连接层的网络模型,前两层有64个单元,激活函数为‘relu’,最后一层为1个单元,不加激活层,这样可以预测任意范围的值。编译网络optimizers是‘rmsprop’,loss是‘mse’。然后查看前五个房屋实际价格与预测房屋价格,发现差异较大。然后重新构建一个包含五层的网络模型,前两层是64个单元,后三层分别是32、16、1个单元的全连接层,发现模型性能有所改进,但预测结果还是不太理想。则在模型中引入K交叉折验证方法进行改进,通过调节模型训练轮数、优化器等参数,最后观察模型性能,预测房价与实际房价相差约2400美元,查看前五个预测房屋价格分别是:8.473495,20.397701,22.871258,33.599148,25.75566,与实际房屋价格比较符合。
关键词:波士顿房价;特征标准化;神经网络;K折交叉验证
目录
一、课程设计目的
在现实的生活中我们经常遇到分类与预测的问题,目标变值通常会受到多个因素的影响,并且不同的因素对于目标变量的影响也不尽相同,因此权重也会不相同,有些因素权重大,有些因素权重小。我们通常会通过已知的因素来预测目标变量的值。
房价是受诸多因素影响的,如人均犯罪率、每个住宅的平均房间数、高速公路可达性等。这些都是影响房子价格的因素。房价明显是连续的取值,故房价预测问题是回归问题。于是我们将通过深度学习来预测波士顿房价。
二、总体思路
构建波士顿房价预测任务的神经网络模型步骤:
三、神经网络实现过程
3.1、数据预处理
首先我们需要加载波士顿房价数据,通过观察我们可以发现数据中有404个训练样本和数102个测试样本,每个样本都有13个数值特征,数值特征如下:
属性 |
数据类型 |
字段描述 |
CRIM |
Float |
城镇人均犯罪率 |
ZN |
Float |
占地面积超过2.5万平方英尺的住宅用地比例 |
INDUS |
Float |
城镇非零售业务地区的比例 |
CHAS |
Integer |
查尔斯河虚拟变量 (= 1 如果土地在河边;否则是0) |
NOX |
Float |
一氧化氮浓度(每1000万份) |
RM |
Float |
平均每居民房数 |
AGE |
Float |
在1940年之前建成的所有者占用单位的比例 |