Tensorflow2学习笔记:房价预测

本文通过TensorFlow2构建了一个简单的回归模型,用于预测深圳房价。首先,介绍了Python、TensorFlow和相关数据可视化库的作用。然后,详细展示了数据预处理的步骤,包括数据清洗、特征编码和数据规范化。接着,使用早停策略训练模型以防止过拟合,并在测试集上评估模型性能。最后,分析了模型预测结果并总结了关键知识点。

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • TensorFlow 是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用。
  • Matplotlib是一个综合库,用于在Python中创建静态,动画和交互式可视化。
  • Pandas是一个Python软件包,提供快速,灵活和可表达的数据结构,旨在使结构化(表格,多维,潜在异构)和时间序列数据的处理既简单又直观。
  • Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。
  • 房价预测是一个回归问题,本文通过以深圳房价数据集为例,旨在学习基本回归的思路!

实验环境

  • Python 3.6.2
  • Tensorflow-gpu 2.0.0
  • Matplotlib 3.3.2
  • Pandas 0.23.4
  • Seaborn 0.11.0

实验步骤

导入相关库

import pathlib

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

import tensorflow as tf

from tensorflow import keras
from tensorflow.keras import layers

获取数据

使用 pandas 导入数据集。

raw_dataset = pd.read_csv("shenzhen_house_price.csv")

dataset = raw_dataset.copy()
dataset.tail() # 查看末尾5行
district roomnum hall AREA C_floor floor_num school subway per_price
18509 longgang 6 2 269.22 middle 10 1 1 9.2861
18510 nanshan 4 1 203.00 low 11 1 1 10.3448
18511 pingshan 3 2 88.08 middle 32 1 0 3.4060
18512 longgang 3 2 87.50 middle 33 1 1 6.6057
18513 luohu 3 2 69.30 middle 26 1 0 6.2771

数据清洗

# 统计每列nan值的个数
dataset.isna().sum()
district     0
roomnum      0
hall         0
AREA         0
C_floor      0
floor_num    0
school       0
subway       0
per_price    0
dtype: int64
# 序列特征映射
district_mapping = {
   
   'baoan': 0,
                    'dapengxinqu': 1,
                    'futian': 2,
                    'guangming': 3,
                    'longgang': 4,
                    'longhua': 5,
                    'luohu': 7,
                    'nanshan': 8,
                    'pingshan': 9,
                    'yantian': 10}
dataset['district']=dataset['district'].map(district_mapping)
C_floor_mapping = {
   
   'low': 0, 'middle': 1, 'high': 2}
dataset['C_floor']=dataset['C_floor'].map(C_floor_mapping)
dataset.tail() # 查看末尾5行
district roomnum hall AREA C_floor floor_num school subway per_price
18509 4 6 2 269.22 1 10 1 1 9.2861
18510 8 4 1 203.00 0 11 1 1 10.3448
18511 9 3 2 88.08 1 32 1 0
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FriendshipT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值