TensorFlow入门 |(二)房价预测模型

本文介绍了使用TensorFlow构建房价预测模型的步骤,包括单变量和多变量预测,数据预处理,线性回归模型的创建与优化。通过TensorBoard进行模型可视化,展示了损失值随迭代减少的过程,并解释了如何使用名字作用域优化数据流图的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

房价预测模型简介

房价预测模型是一种简单的线性模型,属于监督学习的一种,给一些输入参数比如房屋面积、卧室数量等做,然后结合给定的价格标签做预测。

单变量房价预测

import pandas as pd
import seaborn as sns
sns.set(context="notebook", style="whitegrid", palette="dark")

导入做数据分析的pandas库,用seaborn来做可视化。
sns.set是seaborn的一个环境设置方法,具体使用规则可以输入sns.set?查看(jupyter中)。将上下文环境设置为notebook,白色背景,黑色线。

df0 = pd.read_csv('data0.csv', names=['square', 'price'])
sns.lmplot('square', 'price', df0, height=6, fit_reg=False)

data0.csv文件存放了单变量房价预测所要用的数据,第一列是面积,第二列是价格。用pandas的方式读入数据。
用sns.Implot方法可视化这些数据。设置相关参数如:x轴的名称“square”,y轴的名称“price”,所需数据“df0”,图的大小。fit_reg意思就是是否需要拟合这些散点(fit regression),False和True的结果分别如下
结果如下图所示:
fit_reg=False
fit_reg=True
如果要看下前5行的数据,可以用

df0.head(5)    # 也可以直接输入df0看全部的数据

还有如果要看具体信息的话可以输入

df0.info()

在这里的输出情况如下

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 47 entries, 0 to 46
Data columns (total 2 columns):
square    47 non-null int64
price     47 non-null int64
dtypes: int64(2)
memory usage: 832.0 bytes

简单了解之后再来看下多变量房价预测

多变量房价预测

import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
df1 = pd.read_csv('data1.csv', names=['square', 'bedrooms', 'price'])
df1.head()

到如用到的库,这里用pyplot创建图片,用mplot3D绘制3D图。
从data.csv文件中导入数据。输入是房屋的面积和房间卧室数量,输出是房屋价格。

fig = plt.figure()  # 创建一个原始图
# 创建一个 3D 对象
ax = plt.axes(projection='3d')
# 设置 3 个坐标轴的名称
ax.set_xlabel('square')
ax.set_ylabel('bedrooms')
ax.set_zlabel('price')
# 绘制 3D 散点图
ax.scatter3D(df1['square'], df1['bedrooms'], df1['price'], c=df1['price'], cmap='Blues')

最后一行代码中的c=df1['price']表示以价格的变化情况来控制散点颜色深度的变化,颜色设置为蓝色。

为解决数据单位和范围的问题,通常要数据规范化。

def normalize_feature(df):
    return df.apply(lambda column: (column - column.mean()) / column.std())
df = normalize_feature(df1)
df.head()

规范化处理后的数据如下

	square	    bedrooms   	price
0	0.130010 	-0.223675	0.475747
1	-0.504190	-0.223675	-0.084074
2	0.502476  	-0.223675	0.228626
3	-0.735723	-1.537767	-0.867025
4	1.257476	 1.090417	1.595389

处理之后的图像如下

ax = plt.axes(projection='3d')
ax.set_xlabel('square')
ax.set_ylabel('bedrooms')
ax.set_zlabel('price')
ax.scatter3D(df['square'], df['bedrooms'],df['price'],c=df[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值