tensorflow实验四----波士顿房价预测

【人工智能】保姆级波士顿房价预测 波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的“Hello World”。和大家对房价的普遍认知相同,波士顿地区的房价是由诸多因素影响的。该数据集统计了13种可能影响房价的因素和该类型房屋的均价,期望构建一个基于13个因素进行房价预测的模型,如所示。对于预测问题,可以根据预测输出的类型是连续的实数值,还是离散的标签,区分为回归任务和分类任务。因为房价是一个连续值,所以房价预测显然是一个回归任务。下面我们尝试用最简单的线性回归模型解决这个问题,并用神经网络来实现这个模型。 阅读详情

波士顿房价预测

波士顿房价数据集包括506个样本,每个样本包括12个特征变量和该地区的平均房价房价(单价)显然和多个特征变量相关,不是单变量线性回归(一元线性回归)问题选择多个特征变量来建立线性方程,这就是多变量线性回归(多元线性回归)问题波士顿房价预测

数据集解读、
在这里插入图片描述
CRIM: 城镇人均犯罪率
ZN:住宅用地超过25000 sq.ft. 的比例
INDUS: 城镇非零售商用土地的比例
CHAS: 边界是河流为1,否则0
NOX: 一氧化氮浓度
RM: 住宅平均房间数数据集解读
AGE: 1940年之前建成的自用房屋比例
DIS:到波士顿5个中心区域的加权距离
RAD:辐射性公路的靠近指数
TAX : 每10000美元的全值财产税率
PTRATIO: 城镇师生比例
LSTAT: 人口中地位低下者的比例
MEDV: 自住房的平均房价,单位:千美元

读取数据

import tensorflow.compat.v1 as tf
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import pandas as pd
from sklearn.utils import shuffle
from sklearn.preprocessing import scale
print("Tensorflow版本是:",tf.__version__)

在这里插入图片描述

通过Pandas导入数据

df = pd.read_csv("E:/wps/boston.csv",header=0)  #这里的路径就是你存放波士顿房价文件的绝对路径
print(df.describe())

在这里插入图片描述
Pandas读取数据
显示前三条数据

df.head(3)

在这里插入图片描述

显示后三条数据

df.tail(3)

在这里插入图片描述

数据集划分

数据准备

ds = df.values
print(ds.shape)
print(ds)

在这里插入图片描述
划分特征数据和标签数据

x_data = ds[:,:12]
y_data = ds[:,12]
print('x_data shape=',x_data.shape)
print('y_data shape=',y_data.shape)

在这里插入图片描述
划分训练集、验证集和测试集

train_num = 300
valid_num = 100
test_num = len(x_data) - train_num -valid_num

x_train =x_data[:train_num]
y_train =y_data[:train_num]

x_valid = x_data[train_num:train_num+valid_num]
y_valid = y_data[train_num:train_num+valid_num]

x_test = x_data[train_num+valid_num:train_num+valid_num+test_num]
y_test = y_data[train_num+valid_num:train_num+valid_num+test_num]

转换数据类型

x_train = tf.cast(scale(x_train),dtype=tf.float32)
x_valid = tf.cast(scale(x_valid),dtype=tf.float32)
x_test = tf.cast(scale(x_test),dtype=tf.float32)

注意这里有一个情况,这里使用来一个scale()函数,如果不适用这个函数会导致训练结果异常,会出现下图的情况,train_loss和valid_loss都没有值
在这里插入图片描述

构建模型

定义模型

多元线性回归模型仍然是个简单的线性函数,其基本形式还是𝑦=𝑤∗𝑥+𝑏,只是此处𝑤和𝑏不再是一个标量,形状会不同。根据模型定义,执行的是矩阵叉乘,所以此处调用的是tf.matmul()函数。

def model(x,w,b):
    return tf.matmul(x,w) + b

创建待优化变量

W = tf.Variable(tf.random.normal([12,1],mean=0.0,stddev=1.0,dtype=tf.float32))
B = tf.Variable(tf.zeros(1),dtype = tf.float32)
print(W)
print(B)

在这里插入图片描述

模型训练

设置超参数
本列将采用小批量梯度下降算法MBGD进行优化

training_epochs = 50
learning_rate = 0.001
batch_size = 10

设置了一个batch_size超参数,用来调整每次进行小批量训练优化的样本数

定义均方差损失函数

def loss(x,y,w,b):
    err = model(x,w,b) - y
    squared_err = tf.square(err)
    return tf.reduce_mean(squared_err)

定义梯度计算函数

def grad(x,y,w,b):
    with tf.GradientTape() as tape:
        loss_ = loss(x,y,w,b)
    return tape.gradient(loss_,[w,b])

在这里插入图片描述

选择优化器

optimizer = tf.keras.optimizers.SGD(learning_rate)

使用tf.keras.optimizers.SGD()声明了一个梯度下降优化器(Optimizer),其学习率通过参数指定。优化器可以帮助根据计算出的求导结果更新模型参数,从而最小化损失函数,具体使用方式是调用其apply_gradients()方法。

迭代训练

loss_list_train = []
loss_list_valid = []
total_step = int(train_num/batch_size)

for epoch in range(training_epochs):
    for step in range(total_step):
        xs = x_train[step*batch_size:(step+1)*batch_size,:]
        ys = y_train[step*batch_size:(step+1)*batch_size]
        
        grads = grad(xs,ys,W,B)
        optimizer.apply_gradients(zip(grads,[W,B]))
        
    loss_train = loss(x_train,y_train,W,B).numpy()
    loss_valid = loss(x_valid,y_valid,W,B).numpy()
    loss_list_train.append(loss_train)
    loss_list_valid.append(loss_valid)
    print("epoch={:3d},train_loss{:.4f},valid_loss{:.4f}".format(epoch+1,loss_train,loss_valid)        

在这里插入图片描述
在这里插入图片描述
这样操作train_loss 和valid_loss的值就都有了

可视化损失值

plt.xlabel("Epochs")
plt.ylabel("Loss")
plt.plot(loss_list_train,'blue',label="Train Loss")
plt.plot(loss_list_valid,'red',label='Valid Loss')
plt.legend(loc=1)

在这里插入图片描述
这里注意执行的次数越多,损失值越大,两条线的距离就越大,比如下图
在这里插入图片描述

查看测试集的损失

print("Test_loss:{:.4f}".format(loss(x_test,y_test,W,B).numpy()))

测试集里随机选一条

test_house_id = np.random.randint(0,test_num)
y = y_test[test_house_id]
y_pred = model(x_test,W,B)[test_house_id]
y_predit=tf.reshape(y_pred,()).numpy()
print("House id",test_house_id,"Actual value",y,"Predicted value",y_predit)

在这里插入图片描述
这样就完成了!!!

利用神经网络进行波士顿房价预测 前言 ​    前一阵学校有五一数模节校赛,和朋友一起参加做B题,波士顿房价预测,算是第一次自己动手实现一个简单的小网络吧,虽然很简单,但还是想记录一下。 题目介绍 ​    波士顿住房数据由哈里森和鲁宾菲尔德于1978年Harrison and Rubinfeld1收集。它包括了波士顿大区每个调查行政区的506个观察值。1980年Belsley et al.2曾对此数据做过分析。 ​    数据一共14列,每一列的含 阅读详情

相关推荐

Tensorflow:深度神经网络DNN预测波士顿房价(boston house price)【一】

刚学习TF,尝试拿sklearn的datasets来做下练习。波士顿房价数据是个不错的选择。 python3.5 tensorflow 0.12把所有的包import进来# coding: utf-8 import tensorflow as tf from sklearn.datasets import load_boston import matplotlib.pyplot as plt f

mvs2008的专栏 1万+

深度学习实验三:波士顿房价预测任务

使用Python、NumPy、百度飞桨实现波士顿房价预测任务

Moonee_ 4398

波士顿房价预测的TensorFlow实现(多元线性回归)

import tensorflow as tf import numpy as np import pandas as pd from sklearn.utils import shuffle from sklearn.preprocessing import scale import matplotlib.pyplot as plt %matplotlib inline 获取数据和查看数...

Gfqwy2021 3035

波士顿房价预测实验报告

实验题目:请建立一个预测房屋价值的模型,给出线性回归的指标MSE,RMSE,MAE、R2,画出数据图。备注:考虑房间数特征和所有特征(选做) 操作步骤与提示: 波士顿房产数据集:使用sklearn.datasets.load_boston即可加载相关数据; 'RM'是该地区中每个房屋的平均房间数量。 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn import dataset

zpeien 1万+

Tensorflow:深度神经网络DNN预测波士顿房价(boston house price)【二】

在Tensorflow:深度神经网络DNN预测波士顿房价(boston house price)【一】 中训练了网络还保存了模型。如何使用训练好的模型?请往下看。。import用到的包# coding: utf-8 import tensorflow as tf from sklearn.datasets import load_boston from sklearn.preprocessing i

mvs2008的专栏 8824

TensorFlow 实现Boston房价预测

TensorFlow 实现Boston房价预测综述代码与解释关键点结语 综述 本文使用了 TensorFlow 2.0 框架,搭建了 ANN(人工神经网络),实现 Boston 房价预测。本文使用的编程工具为 jupyter notebook,完整代码可以在我的GitHub中找到, Boston 房价预测,是一个非常经典的案例了,已有许多学者对其进行了各式各样的研究,也通过拟合各种各样的模型,对该...

你的大数据学长 4824

波士顿房价预测(TensorFlow2.9实践)

波士顿房价数据集包括506个样本,每个样本包括12个特征变量和该地区的平均房价。房价(单价)显然和多个特征变量相关,不是单变量线性回归(一元线性回归)问题,选择多个特征变量来建立线性方程,这就是多变量线性回归(多元线性回归)问题。本文探讨了使用TensorFlow2.9+多元线性回归,解决波士顿房价预测问题。...

baidu的专栏 7047

09丨线性回归与波士顿房价预测

波士顿房价数据源于美国某经济学杂志上,分析研究波士顿房价( Boston HousePrice)的数据集。数据集中的每一行数据都是对波士顿周边或城镇房价的情况描述,本实验以波士顿房价数据集为线性回归案例数据,进行模型训练,预测波士顿房价。房子作为居住的场所,对每个人而言是不可或缺的。而房价的高低也是受多种因素的影响。房子所处的城市是一线还是二线,房子周边的交通便利程度,房子附近是否存在医院或者学校等,众多因素都会影响房价。在拿到数据之后,先要查看数据的类型,是否有空值,数据的描述信息等等。

AIGC 1万+

tensorflow BP神经网络 波士顿房价预测

前言 啥也别说了,上代码 code # 根据波士顿房价信息进行预测,多元线性回归 + 特征数据归一化 + 可视化 + TensorBoard可视化 #读取数据 from sklearn.metrics import mean_squared_error #均方误差 from sklearn.metrics import mean_absolute_error #平方绝对误差 from sklear...

qq_41663800的博客 6809

机器学习实验(Lasso求解算法预测波士顿房价)实验报告和代码

1.自编 Lasso 算法,求解方法不限(最小角度规划和快速迭代收缩阈值 FIST 或者其他),说明采用的是何种类型求解方法。2.基于波士顿房价数据集,采用自编 Lasso 算法预测波士顿房价。共 506 个样本,前一半样本作为训练集,后一半样本作为测试集。给出模型在 RMSE 指标上的表现。3. 使用 scikit-learn 实现的回归算法(至少 3 种)来预测波斯顿房价,并对比结果。

波士顿房价预测,机器学习

波士顿房价预测,机器学习,python+jupyter,有代码和报告

tensorflow 机器学习 波士顿房价预测 笔记

tensorflow 机器学习 波士顿房价预测

qq_36712111的博客 5261

HarmonyOS开发第一步:Dev Eco Studio4.0保姆级安装配置指南(含Node.js环境)

本文提供HarmonyOS开发环境搭建的保姆级教程,重点详解Dev Eco Studio 4.0的安装与配置,并攻克Node.js环境与Ohpm包管理器的关键设置难点。通过清晰的步骤指引,帮助开发者从零开始,高效完成开发环境部署,顺利迈出鸿蒙应用开发的第一步。

lake5的博客 569

波士顿房价问题——多元线性回归+TensorFlow

波士顿房价问题——多元线性回归、Tensorflow 决定房价的因素有很多,所以采用多元线性回归模型 官方提供的波士顿房价项目数据集 其中, 载入数据 df = pd.read_csv('boston.csv', header=0) 观察数据摘要描述信息 将df转换为np的数组格式,并做归一化 归一化:(特征值-特征最小值)/(特征最大值-特征最小值) 如果缺少归一化步骤,不同特征值的取...

江南小帅瓜的博客 8982

中移物联ML307C模组OPENCPU开发环境搭建全攻略

本文详细介绍了中移物联ML307C模组OPENCPU开发环境搭建的全过程。从OPENCPU模式的核心优势解析,到SDK获取、Python与scons工具安装,再到解读SDK目录结构与实战编译命令,最后提供常见问题避坑指南,帮助开发者快速构建高效的物联网应用编译环境。

weixin_29168393的博客 742

一文说清STM32CubeMX中文汉化全流程(图解说明)

详细讲解STM32CubeMX中文汉化的完整流程,通过图文并茂的方式手把手教学,解决界面英文带来的使用障碍,让开发更高效。掌握stm32cubemx中文汉化技巧,提升嵌入式开发体验。

weixin_42499004的博客 6273

tensorflow入门(一)波士顿房价数据集

Keras Keras 是基于 Theano 或 TensorFlow 的一个深度学习框架,它的设计参考了 Torch,用 Python 语言编写,是一个高度模块化的神经网络库,支持 GPU 和 CPU。 它可以快速搭建神经网络模型,非常易于调试和扩展。TensorFlow的官方API内置了一些常用的公共数据集,可以通过keras.datasets模块加载和访问。 Keras中集成的数据集 序号 名称 说明 1 boston_housing 波士顿房价数据集 2 CIFAR10 10种类

qq_37289115的博客 1万+

如何免费快速的部署一个自用免VIP的自动追剧工具!NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能(支持Windows,群晖nas,飞牛nas,软路由,服务器等Docker快速部署)

追剧党狂喜!豆瓣追剧神器,自动添加云盘,自动下载,微信通知,一键搞定!

XiaoqiangClub的博客 4582

Tensorflow实战入门(二)---波士顿房价预测

一、简介 波士顿房价数据集包括506个样本,每个样本包括12个特征变量和该地区的平均房价 房价(单价)显然和多个特征变量相关,不是单变量线性回归(一元线性回归)问题 选择多个特征变量来建立线性方程,这就是多变量线性回归(多元线性回归)问题 二、核心步骤 使用Tensorflow进行训练的核心步骤: (1) 准备数据 (2) 构建模型 (3) 训练模型 (4) 进行预测 三、准备数据 3.1)数据获...

weixin_45589713的博客 2538

RK3588开发笔记-ISP模块参数调试

本文详细介绍了基于RK3588平台的ISP模块参数调试流程。主要内容包括:硬件准备(RK3588板卡、IMX415摄像头等)、软件环境搭建(Ubuntu系统、RKISP_Tuner工具)、IMX415摄像头基础使用验证、RKISP2.x Tuner工具的使用方法(新建/加载IQ参数文件、Sensor配置、Raw图采集)以及最终IQ文件的部署。文章重点强调了基础标定的重要性,建议开发者分场景调试并参考官方文档,通过合理配置ISP参数来优化图像质量。该调试流程适用于RK3588平台的图像采集类项目开发。

flypig has a dream! 839

课程1:认识Asp.net Core Web API

本文是《.Net Core从零学习搭建权限管理系统》教程专栏的导航站(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)专栏介绍:以实战为线索,基于.Net 7 + REST + Vue、前后端分离,不依赖任何第三方框架,从零一步一步讲解权限管理系统搭建。专栏适用于人群:Web后端开发人员Web API是一个很广泛的概念,Asp.net Core Web API是.NET框架用于创建RESTful风格的项目、用于轻松构建可供多个客户端访问的HTTP服务。1、支持RestFul风格编程;

成长的足迹 1256

利用tensorflow进行机器学习实例2(波士顿房价预测)

昨天已经跟着慕课完成了一个最简单的机器学习实例:线性回归。而且是只有一个变量的,不过通过那个例子我已经理解了机器学习的基本步骤,如何创建数据集、如何创建模型、如何训练模型、如何用训练好的模型进行预测等等。 接下来我又跟着慕课做了一个多元线性回归的实例:波士顿房价的预测。这里的变量就不是一个了,而是12个,这样我们就必须使用到多元线性回归的问题。 关于慕课的学习,我是在中国大学mooc上学习的,课程名称是:深度学习应用开发-TensorFlow实践,有兴趣可以去学习一下,我觉得讲解的很详细,而且会带着把每一句

Mu_yongheng的博客 2781

ardupilot 日志分析《xKF1信息》

ardupilot 日志分析系列将会把ardupilot所有的日志文档进行分析,为我们分析无人机的运行状态,炸鸡原因,传感器状态,电机状态,控制信息,滤波信息做准备。本节主要分析xKF1日志信息,欢迎批评指正。学习好ardupilot必须会分析飞行日志,从飞行日志中我们可以学到很多无人机的知识。无人机是综合知识的体现,涵盖:导航、控制、滤波、算法、协议等各种知识,只有更全面的学习,才能在无人机的道路上越走越远。

陌城烟雨 1225

tensorflow 波士顿房价预测LSTM/RNN tensorboard 完整代码

只改了版本问题和我上个博客写的msr_error()函数,其余代码来自于下边这个博客:https://blog.youkuaiyun.com/baixiaozhe/article/details/54410313上边的链接增加了波士顿房价数据的读取和预处理, 比莫烦tensorflow LSTM/RNN的例子更全面,更有价值。代码亲测,可运行。from sklearn.datasets import load...

小哈的博客 5111

Autosar Dcm配置-App到Boot的跳转及1002回复配置及实现-基于ETAS软件

在软件刷写流程中,上位机(诊断仪)发送1002后,APP检查允许跳转boot后,在特定的ram(软复位不清除)写入指定置后通过触发软件复位来跳转到boot的。在APP跳转到Bootloader时,1002的回复有两种方式,一种是APP直接回复,然后跳转,另一种是APP回复NRC78,然后跳转,在Boot中回复。本文介绍这两种方式的实现。如果是在APP中回复,可以少发一个0x78,整体跳转时间可能会少一些。但是如果诊断在收到5002之后立马请求其他的服务,可能出现boot正在初始化而未正常接收到报文。

赞的博客 1556

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Tensorflow波士顿房价预测学习记录

Tensorflow波士顿房价预测学习记录 第一.导入需要的库 import numpy as np import matplotlib.pyplot as plt import tensorflow as tf numpy数组用来初始化(后文) matplotlib用来画图,可以更加明显的突出数据的变化 第二.加载波士顿地价 介绍 波士顿房价数据集是统计的20世纪70年代中期波士顿郊区房价的中...

m0_46432804的博客 1020

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: MySQ练习题(1)----基于数据库school创建course和student表
下一篇: MySQL多实例安装方法一
独宠。
博客等级 码龄7年 3054粉丝 60原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值