使用tensorflow神经网络预测房价模型
本例使用kaggle的“House Sales in King County, USA"数据集,共有21613笔房屋数据,每一笔数据有21个不同的信息,如图所示:
下载地址:
链接: https://pan.baidu.com/s/15OjQ5YHpooDaxkhFHfTpjg
提取码: tcg9
第1步,导入必要套件:
import os
import numpy as np
import pandas as pd
import tensorflow as tf
import matplotlib.pyplot as pltfrom tensorflow import keras
from tensorflow.keras import layers
第2步,读取数据并进行数据预处理
根据列表中第2列date数据提取“年、月、日”这3个有效信息,并放在列表最后,尔后丢弃id与date这2个无用信息。
data = pd.read_csv("kc_house_data.csv")data['year'] = pd.to_numeric(data['date'].str.slice(0, 4))
data['month'] = pd.to_numeric(data['date'].str.slice(4, 6))
data['day'] = pd.to_numeric(data['date'].str.slice(6, 8))data.drop(['id'], axis="columns", inplace=True)
data.drop(['date'], axis="columns", inplace=True)
第3步,分割数据集
按照6:2:2的比例将数据集分割为训练(train_data)、验证(val_data)、测试(test_data)3部分。
data_num = data.shape[0]
indexes = np.random.permutation(data_num)
train_indexes = indexes[:int(data_num * 0.6)]
val_indexes = indexes[int(data_num * 0.6):int(data_num * 0.8)]
test_indexes = indexes[int(data_num * 0.8):]train_data = data.loc[train_indexes]
val_data = data.loc[val_indexes]
test_data = data.loc[test_indexes]
第4步,将数据归一化并建立Numpy array格式的训练数据
数据集中部分数据量较大,如房屋居住面积为1500~2500,与其它数据在一起不好进行训练,因此采用减去平均值再除以均方差的方式,将所有数据化分在[0,1]之间。
train_validation_data = pd.concat([train_data,val_data])
mean = train_validation_data.mean()
std = train_validation_data.std()train_data = (train_data - mean) / std
val_data = (val_data - mean) / stdx_train = np.array(train_data.drop('price', axis='columns'))
y_train = np.array(train_data['price'])
x_val = np.array(val_data.drop('price', axis='columns'))
y_val = np.array(val_data['price'])
第5步,搭建神经网络模型
model = keras.Sequential(name = 'model-1')
model.add(layers.Dense(64, activation='relu', input_shape=(21,)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(1))
model.summary()
第6步,设置模型优化器、损失函数、评价指标
model.compile(keras.optimizers.Adam(0.001),loss=keras.losses.MeanSquaredError(),metrics=[keras.metrics.MeanAbsoluteError()])
第7步,创建模型存储目录并设置回调函数
model_dir = 'lab-house/models'
os.makedirs(model_dir)log_dir = os.path.join('lab2-logs', 'model-1')
model_cbk = keras.callbacks.TensorBoard(log_dir=log_dir)
model_mckp = keras.callbacks.ModelCheckpoint(model_dir + 'Best-model-1.h5',monitor='val_mean_absolute_error',save_best_only = True,mode = 'min')
第8步,开始训练
history = model.fit(x_train, y_train,batch_size = 64,epochs = 300,validation_data = (x_val, y_val),callbacks = [model_cbk, model_mckp])
第9步,用测试数据进行房屋价格预测,并与实际价格进行误差百分比的计算
model = keras.models.load_model('lab2-logs/models/Best-model-1.h5')
y_test = np.array(test_data['price'])
test_data = (test_data - mean) / std
x_test = np.array(test_data.drop('price', axis='columns'))
y_pred = model.predict(x_test)
y_pred = np.reshape(y_pred * std['price'] + mean['price'], y_test.shape)
percentage_error = np.mean(np.abs(y_test - y_pred)) / np.mean(y_test) * 100print("model_1 Percentage Error: {:.2f}%".format(percentage_error))
结果如下:
证明错误率只有11.84%。
使用tensorflow神经网络预测房价模型相关推荐
- 使用神经网络做二分类,输出层需要几个神经元?应该选择哪一种激活函数?如果要处理minst数据、输出层需要几个神经元?使用那种激活函数?如果使用神经网络预测房价,输出层需要几个神经元、使用什么激活函数?
使用神经网络做二分类,输出层需要几个神经元?应该选择哪一种激活函数?如果要处理minst数据.输出层需要几个神经元?使用那种激活函数?如果使用神经网络预测房价,输出层需要几个神经元.使用什么激活函数? ...
- 基于TensorFlow实现预测房价--回归问题
写在前面 分类问题的目标是预测输入数据点所对应的单一离散的标签.另一种常见的机器学习问题是回归问题,它预测一个连续值而不是离散的标签,例如,根据气象数据 预测明天的气温,或者根据软件说明书预测完成软件 ...
- Tensorflow神经网络预测股票均价
一.简介 1.目标: 已知股票的「开盘价」和「收盘价」,利用神经网络来预测「收盘均价」 2.数据源: 日期(data):[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ...
- tensorflow knn 预测房价 注意有 Min-Max Scaling
示例数据: 0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 24.000.02731 0.00 7 ...
- python房价预测_python预测房价
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文主要介绍如何利用python实现kaggle经典比赛项目,波士顿房价预测问题 ...
- 神经网络预测参数有哪些,神经网络预测参数包括
遗传神经网络储层参数预测 . 4.4.1网络的识别过程由于地震勘探中广泛采用三维地震.高分辨率勘探等新技术,资料处理中也引入了多种新的处理方法,使得综合提取多种地震信息成为可能,使用这些信息进行储层横 ...
- 神经网络预测结果分析,神经网络预测适用范围
采用什么手段使神经网络预测更加准确 优化神经网络结构.如BP神经网络改变隐层神经元数量.训练算法等:使用其他神经网络.如Elman神经网络考虑了前一时刻的输出,比较适合用于预测,预测效果往往更好. R ...
- 神经网络预测结果分析,神经网络怎么预测数据
神经网络为什么可以预测? 这个要视处理的问题而定,训练网络的样本是基于多少年的数据,相应预测的就是多少年的数据. 例如电力负荷预测,当进行的是短期负荷预测时,输入的样本为最近几日的负荷数据,那么预测的 ...
- 神经网络算法的关键参数,神经网络预测时间序列
神经网络预测安全系数 首先建立一种较简单的神经网络预测安全系数模型,以验证该方法用于露天井工联合开采煤岩边坡分析时的可行性. 6.4.3.1露天井工联合开采边坡稳定性影响因素确定及其预处理诸多因素影响 ...
- 神经网络准确率计算公式,神经网络预测精度
预测准确率如何计算? 预测准确率=1-(误差绝对值/预测需求量*100%). 误差绝对值=|实际需求量-预测需求量|当预测为100,实际为50时,误差值为50,预测准确率为=1-50/100=50%当 ...
最新文章
- ONE- Open Navigator Engine 开放式浏览器引擎
- day12 装饰器进阶
- 这份程序员的简历刷爆了九月的朋友圈
- jsapi支付签名_PHP实现微信支付(jsapi支付)流程步骤详解
- PhpStorm11.0 配置在浏览器中打开文件
- 路由重分发中尽然忘记了这件事
- sharepoint 2010 记录管理 对象模型
- python中的括号不是西文吗_二级Python---python语言的基本语法元素(Day1)
- Magicodes.IE 2.4发布
- LeetCode 1472. 设计浏览器历史记录(双栈)
- Python笔记-置信区间含义及运算
- python mongodb 异步_Python异步读写Mongodb(motor+asyncio)
- 输出字符串引用名java_将方法名称作为字符串给出时,如何调用Java方法?
- Python爬虫基础:常用HTML标签和Javascript入门
- [转]为什么python标准库没有实现链表
- PowerDesigner如何导出SQL
- 【转】让VB6.0集成环境支持鼠标滑轮
- word整个表格首行缩进_word表格怎么首行缩进 word表格内容缩进
- 2021-11-08
- Cilium 官方文档翻译(7) IPAM Kubernetes Host模式