回归模型——波士顿房价数据集(《python 深度学习》)

本文介绍了使用波士顿房价数据集进行回归模型训练的过程,包括数据集分析、0均值标准化预处理、网络模型构建、K-折交叉验证以及训练结果分析。通过K折交叉验证评估模型性能,分析模型训练过程中MAE的变化趋势,以确定最佳迭代次数。
摘要由CSDN通过智能技术生成

1 数据集简介与数据的分析

  1.1 数据背景简介

      波士顿房价数据集是统计的20世纪70年代中期波士顿郊区房价的中位数,统计了当时教区部分的犯罪率、房产税等共计13个指标,统计出房价,试图能找到那些指标与房价的关系。本例子明显的是属于回归模型的案例。在数据集中包含506组数据,其中404是训练样本,剩下的102组数据作为验证样本。

  1.2 数据结构的分析  

    先来看看数据集的数据结构,输入

from keras.datasets import boston_housing 
(train_data,train_targets),(test_data,test_targets) = boston_housing.load_data()

      如图所示整个训练集的结构是一个403*13的矩阵列表,每一行代表一组指标。随机打开第一组数据,发现数据并没有一个明显的特征,比如说都在0~1之间,而事实上,这些指标的取值范围有很大的差异,有的取值范围是0~1有的是0~100等等,差异巨大。因此我们在数据输入之前应当将数据做归一化处理。

2 数据的预处理

  2.1 0均值标准化(Z-score standardization)

    所谓数据的归一化就是将数据“去量纲化”,这是一个物理学的概念,简单来说我们就是要把这些数据指标的单位的影响去掉,使得他们都在同一个量纲上——无量纲上进行讨论,这样数据之间的相互关系还在,其他的一些干扰因素就少了很多。归一化基本方法有线性函数归一化与0均值标准化两种(详见https://blog.csdn.net/zbc1090549839/article/details/44103801),在数据大致呈现正态分布的前提下一般采用0均值标准化(Z-score standardization),公式为

      含义就是将数据减去数据组的平均数再除以标准差,这样处理后每项指标数据均成平均值为0,标准差为1的正态分布。代码实现如下:

(train_data,train_targets),(test_data,test_targets) = boston_housing.load_data()
mean = train_data.mean(axis = 0)
train_data -= mean
std = train_data.std(axis = 0)
train_data /= std

test_data -= mean
test_data /= std

   这里要着重注意的是,对测试数据的处理使用的平均值和标准差都是训练集的,绝对不可以动用测试集的任何数据做任何脱离训练集的处理。

3 构建网络

    3.1 模型定义

def build_model():
    model = models.Sequential()
    model.add(layers.Dense(64,activation = 'relu',input_shape = (train_data.shape[1],)))
    model.add(layers.Dense(64,activation = 'relu'))
    model.ad
  • 19
    点赞
  • 180
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值