波士顿房价预测

目录

  • 前言
  • 一、波士顿房价预测实战
    • 1-1、数据集介绍&数据集导入&分割数据集
    • 1-2、数据标准化
    • 1-3、构建网络
    • 1-4、K折交叉验证&取出所有的训练损失、训练平均绝对误差、验证损失、验证平均绝对误差
    • 1-5、计算平均mae&绘制验证mae分数&绘制验证loss分数
    • 1-6、找到最好的训练轮次&批次
  • 二、调参总结
  • 总结


前言

对于波士顿房价数据集的预测实战

一、波士顿房价预测实战

1-1、数据集介绍&数据集导入&分割数据集

from keras.datasets import boston_housing
# 预测20世纪70年代中期波士顿郊区房屋价格的中位数
# 数据点比较少,只有506个,分为404个训练样本和102个测试样本
# 输入数据的每个特征都有不同的取值范围。
(train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()# 查看训练数据

输出:可以看到数据量较少,数据维度是13维的。
在这里插入图片描述
在这里插入图片描述

1-2、数据标准化

def normalize(train_data):"""数据标准化"""mean = train_data.mean(axis=0)train_data -= meanstd = train_data.std(axis=0)train_data /= stdreturn mean, std, train_data
mean, std, train_data = normalize(train_data)
# 注意:测试数据标准化的均值和标准差都必须是在训练数据上计算得到的。
test_data -= mean
test_data /= std # 查看标准化后的数据

输出

在这里插入图片描述

1-3、构建网络

import keras
def build_model():"""搭建网络mse:损失函数采用均方误差,即mse。mae:训练过程中采用的监控指标,mae,即平均绝对误差。"""model = keras.models.Sequential()model.add(keras.layers.Dense(64, activation='relu', input_shape=(train_data.shape[1],)))model.add(keras.layers.Dense(64, activation='relu'))model.add(keras.layers.Dense(1))model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])return model

1-4、K折交叉验证&取出所有的训练损失、训练平均绝对误差、验证损失、验证平均绝对误差

# 因为在本例子中,数据较少,选择不同的训练集和验证集,验证分数会有较大的波动,这种情况下最好使用K折交叉验证,最后求K个验证分数的平均值。
import numpy as npk=4
num_epochs = 500
all_loss = []
all_val_loss = []
all_mae = []
all_val_mae = []
num_val_samples = len(train_data) // k
for i in range(k):print('-'*20+str(i)+' Start'+'-'*20)val_data = train_data[i*num_val_samples:(i+1)*num_val_samples]val_targets = train_targets[i*num_val_samples:(i+1)*num_val_samples]partial_train_data = np.concatenate((train_data[:i*num_val_samples],train_data[(i+1)*num_val_samples:]))partial_train_targets = np.concatenate((train_targets[:i*num_val_samples],train_targets[(i+1)*num_val_samples:]))model = build_model() # batch_size: 一次训练所选取的样本数。history = model.fit(partial_train_data, partial_train_targets, epochs=num_epochs, batch_size=1, verbose=0,validation_data=(val_data, val_targets))all_loss.append(history.history['loss'])all_val_loss.append(history.history['val_loss'])all_mae.append(history.history['mae'])all_val_mae.append(history.history['val_mae'])print('-'*20+str(i)+' End'+'-'*20)

1-5、计算平均mae&绘制验证mae分数&绘制验证loss分数

# 回归问题常常使用的损失函数是均方误差
# 常用的回归指标是平均绝对误差,即MAE
# 如果可以用的数据很少,则可以使用K折交叉验证可靠的评估模型
# 如果可用的训练数据较少,则尽量使用较少的隐藏层(即只有一个或者两个隐藏层),这样可以避免过拟合。
# 如果数据被分为多个类别,那么中间层过小可能会导致信息瓶颈
# all_val_mae: (4,500)
average_mae_history = [np.mean([x[i] for x in all_val_mae]) for i in range(num_epochs)]
import plotly.express as px
import plotly.graph_objects as gofig = go.Figure()
# Add traces
fig.add_trace(go.Scatter(x=list(range(1, len(average_mae_history)+1)), y=average_mae_history,mode='lines',name='average_mae_history'))
fig.show()

输出
在这里插入图片描述
前10天数据拟合落差太大,无法对10天后的数据进行有效的观察。所以从第10天开始输出

import plotly.express as px
import plotly.graph_objects as gofig = go.Figure()
# Add traces
fig.add_trace(go.Scatter(x=list(range(10, len(average_mae_history)+1)), y=average_mae_history[10:],mode='lines',name='average_mae_history'))
fig.show()

输出
在这里插入图片描述

绘制验证集loss

average_mse_history = [np.mean([x[i] for x in all_val_loss]) for i in range(num_epochs)]
import plotly.express as px
import plotly.graph_objects as gofig = go.Figure()
# Add traces
fig.add_trace(go.Scatter(x=list(range(10, len(average_mse_history)+1)), y=average_mse_history[10:],mode='lines',name='average_mse_history'))
fig.show()

输出
在这里插入图片描述

1-6、找到最好的训练轮次&批次

# 根据1-5的探索可知,大概在40轮次到90轮次的损失是最低的,所以我们选择40-90轮次进行调参。
for i in range(40, 91):for j in [16, 32, 64]:model = build_model()model.fit(train_data, train_targets, epochs=i, batch_size=j, verbose=0)test_mse_score,test_mae_score = model.evaluate(test_data, test_targets)print('轮次:{}, 一次训练所取的样本数:{}, mse: {}, mae: {}'.format(i, j, test_mse_score, test_mae_score))# 这里的mae和loss每次训练都会有误差,所以大概选40-90轮次这个范围就ok,不用太纠结具体数值。

在这里插入图片描述

二、调参总结

调参总结
1、训练轮次:房价预测是较为复杂的模型,先选择较大的轮次,这里设置为500,观察数据在验证集上的表现,训练是为了拟合一般数据,所以当模型在验证集上准确率下降时,那就不要再继续训练了。在验证集上大概在40轮次到90轮次的损失是最低的,所以选择这个范围内的训练轮次。
2、隐藏层数设置:同隐藏单元的设置规则,数据简单,则设置的层数较少,如果数据复杂,可以多加几层来观察数据的整体表现。
3、Trick:带有打乱数据的重复K折验证,如果可用的数据相对较少,而你又需要尽可能精确地评估模型,那么可以选择带有打乱数据的重复K折验证(当然这里的话这个Trick是不行的!这里是时间序列数据,是不可以被打乱的。)
4、尝试调节模型的其他方法:添加dropout、添加L1或者L2正则化、反复做特征工程(添加或者是删除没有信息量的特征)


总结

周二早上,昨天睡了很久很久,做了一个很长很长的梦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39650.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

房价多特征预测

2019.11.18 首先非常感谢这位作者,写的很棒!你们就不要看我的啦,看他的⬇️⬇️ 学习来自 https://blog.csdn.net/sinat_29957455/article/details/79255675 下面的内容为自己学习笔记: 学习Kaggle~ing 这次给出的特征有点儿多啊…

北京房价预测图说

前言 曾听人说过,中国经济是房地产市场,美国经济是股票市场。中国房地产市场超过400万亿,房地产总值是美国、欧盟、日本总和,但是股市才50万亿,不到美欧日的十分之一。可见房地产对于中国来说地位尤其明显&#xff01…

苹果App Store商店中国区如何改为美国区

苹果App Store商店中国区如何改为美国区 Hello大家好!苹果外区id是每个苹果手机必不可少的啦!不是国外有多好而是国内的大部分软件都有限制,一开始我百度了一下内容太乱太杂了真的都是“bullshit”,下面直接上教程。 第一首先要一个国内的苹…

二手平台淘的明星同款穿搭?上95分看看

作为一个喜欢穿搭的潮流人士,我拥有许多明星同款,但拥有的越多,我的钱包就越扁。 但尽管是在这样的情况下,我依然不能放弃给它们(指衣服鞋子)一个家,所以我知道了95分,认识了95分&a…

《VogueMe》手写问答新鲜出炉!这字体很李易峰!

爱豆新闻讯 昨日晚间,《VogueMe》官博送上端午小福利――我们小哥哥的手写问答新鲜出炉啦!蜜蜂们纷纷表示,瞧这字体一看就知道是出自我方木哥~ 最后,期待我哥在电影《心理罪》里的表现,小编表示已经迫不及待想见方木了…

pythonif语句怎么换行输入_李沁和李易峰演的电视剧叫什么名字

第一现纠在出掌握证据录音录像历印病常会存复纷后、封时间,的维权意强患方来越由于识越。 每月李女养费0元付抚士支,女由达成高先协议最终养:长双方生抚。他又女儿带着悄悄亲子做了鉴定,为了打消的疑自己虑,对恩高先妻…

有时间BB,不如想想怎么让别人闭嘴吧

1. 经过上次「SKR!虎扑66万JRS大战3300万吴亦凡护卫队,别逼我拿Python」一事,我发现观众里有很多JRs,「这就是灌篮」一定不陌生。 我不是做广告,所以对该节目的评论暂时不讨论,今天要说的是球场外的另一件事…

看了这篇文,开始佩服蔡徐坤了

文/北妈 阅读本文需要 2.6分钟 一 每天群里还在说cxk这个关键字,显然现在cxk的人气和梗,已经是全民级别的了。 看到cxk三个字就忍不住很欢乐,并不是黑他, 如果读者里有坤粉,千万不要误会,我们并没有真心要…

致敬云南滑翔机

今天晚上,看了期待已久的篮球节目, 我要打篮球,11点左右,感觉特别困,已经快睡着了,准备关掉电视的时候看到林书豪的图片,林书豪头上有一个标题《我要打篮球》,这个不就是《这&#x…

陈伟霆,赵丽颖,李易峰,青云志,分析。

作者:韩梦飞沙 QQ:313134555 陈伟霆(William Chan),1985年11月21日出生于中国香港,华语影视男演员、主持人、歌手 2003年因参加全球华人新秀香港区选拔赛而进入演艺圈[1-2] ;2006年成为Sun Boy’z组合一员…

pyhton爬取:爬取爱豆(李易峰)微博评论,看看爱豆粉丝的关注点在哪(附源码)

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本片文章来自腾讯云, 作者:孤独的明月 今日目标:微博 以李易峰的微博为例: https://weibo.com/liyifen…

杨幂 刘恺威公布离婚 目测李易峰将再一次卷入风暴中心!

杨幂 刘恺威终于确认离婚了。嘉行传媒发布消息,宣称杨幂 刘恺威协议离婚。这几年真真假假关于两人离婚的消息,算是每个月都有冒泡。实在是听的耳朵都起茧了。 其实不关心他们两个,可是李易峰却是喜欢的。2014年,杨幂和李易峰主演的…

pyhton爬取爱豆(李易峰)微博评论(附源码)

今日目标:微博 以李易峰的微博为例: https://weibo.com/liyifeng2007?is_all1然后进入评论页面,进入XHR查找真是地址: https://weibo.com/aj/v6/comment/big?ajwvr6&id4353796790279702&fromsingleWeiBo很明显&#xff…

猎聘品牌升级李易峰为代言人 官网启用双拼域名liepin.com

2020年受疫情影响,“金三银四求职季”不如往年风光,如果说起求职软件,大家首先想到的会是谁? 1月18日消息,猎聘开启品牌升级序幕,发布了全新品牌logo,同时公布了当红明星李易峰成为新的品牌代言人。作为新…

pyhton爬取爱豆(李易峰)微博评论

今日目标:微博,以李易峰的微博为例: https://weibo.com/liyifeng2007?is_all1然后进入评论页面,进入XHR查找真是地址: https://weibo.com/aj/v6/comment/big?ajwvr6&id4353796790279702&fromsingleWeiBo很…

李易峰个人简历模板

李易峰 性别:男出生年份:1987QQ:123456民族:汉族婚姻状况:未婚身高:181 cm体重:60 kg演艺经历 2007年李易峰参加《加油!好男儿》获得总决赛第八名以及最具亲和力奖,从而进…

Linux 服务器新建子账户

Linux 服务器新建子账户 以下内容部分为chatgpt的回答 新建子账户 在Linux服务器中,可以使用以下步骤来创建新的用户账户: 打开终端,并使用root用户或拥有sudo权限的用户登录。使用以下命令创建新的用户账户。请将**newuser**替换为您想要…

纺织服装行业通过GRS认证增加产品竞争力

1、GRS再生认证的推出 目前,回收纺织品的项目包括利用棉织品回收再生棉,利用羊手制品回收再生手,利用尼龙制品回收再生尼龙,利用聚酯瓶(PET瓶)回收再生聚酯纤维等。由于利用回收再生棉、毛、尼龙、聚酯等纤维织成的各 类面料价格高…

女性服装数据分析(电商数据)版本1

女性服装数据分析(电商数据)版本1 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns color sns.color_palette()data pd.read_csv(Womens_Clothing.csv) # 查看数据结构 dataUnnamed: 0Clothing IDAg…

2021年中国服装行业分析报告-产业规模现状与发展规划趋势

【报告类型】产业研究 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了服装行业相关概述、中国服装行业运行环境、分析了中国服装行业的现状、中国服装行业竞争格局、对中国服装行业做了重…