基于TensorFlow实现房价预测以及可视化

1. 问题描述

根据已知的房价数据,对新的房子进行价格预测。这种属于典型的监督类学习算法。

2. 算法选择以及原理

2.1 算法图

这里我们用一种比较好理解的机器学习算法来进行建模:线性回归。看下面的图,很容易理解,找出一条线对数据点进行拟合使得目标函数最小话,下图是对单变量进行拟合还可以针对多变量进行建模。
在这里插入图片描述

2.2 算法公式

第一步:定义拟合曲线。
在这里插入图片描述
第二步:转化成矩阵运算,这里的X0就是为了维度增加的。
在这里插入图片描述
第三步:计算误差函数,将模型值与真实值进行比较得到误差。
在这里插入图片描述
第四步:采用梯度下降进行模型优化,求偏导确定方向,a表示步长,下图理解下。
在这里插入图片描述
在这里插入图片描述
上面写的是单变量的模型,多变量的模型类似,不做赘述。

3. 使用TensorFlow实现预测算法

3.1 数据可视化

数据说明:自己构造啦[因为没有找到合适的数据],自己造一个三列的数据

import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d 

df1 = pd.read_csv('data1.csv', names=['square', 'bedrooms', 'price'])
ig = plt.figure()
# 设置坐标
ax.set_xlabel('square')
ax.set_ylabel('bedrooms')
ax.set_zlabel('price')
ax.scatter3D(df1['square'], df1['bedrooms'], df1['price'], c=df1['price'], 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我之前的回答中漏掉了代码部分。以下是基于Spark的波士顿房价预测数据可视化阶段的相关代码,供您参考: ```python # 导入必要的库 from pyspark.sql.functions import col from pyspark.ml.feature import VectorAssembler from pyspark.ml.regression import LinearRegression import matplotlib.pyplot as plt # 读取数据集 df = spark.read.format("csv").option("header", True).option("inferSchema", True).load("boston_housing.csv") # 数据预处理 df = df.select([col(c).cast("double").alias(c) for c in df.columns]) assembler = VectorAssembler(inputCols=df.columns[:-1], outputCol="features") df = assembler.transform(df) # 训练模型 lr = LinearRegression(featuresCol="features", labelCol="medv", maxIter=10, regParam=0.3, elasticNetParam=0.8) model = lr.fit(df) # 预测 predictions = model.transform(df) # 可视化 plt.scatter(predictions.select("medv").rdd.flatMap(lambda x: x).collect(), predictions.select("prediction").rdd.flatMap(lambda x: x).collect()) plt.xlabel("True Values") plt.ylabel("Predictions") plt.show() ``` 这段代码将波士顿房价数据集加载到Spark中,进行了数据预处理、建模和预测,并使用Matplotlib库将结果可视化呈现。具体而言,代码首先读取CSV格式的数据集,并对所有列进行类型转换,将其转换为double类型。然后,使用VectorAssembler将所有特征列组合成一个名为“features”的向量列。接着,使用LinearRegression算法训练模型,并使用模型对数据集进行预测。最后,使用Matplotlib库将真实值和预测值作为横纵坐标进行散点图可视化。 需要注意的是,这段代码是一个简单的示例,具体的实现方式可能会根据您的需求和数据集的特点而有所不同。希望这些代码能够对您的工作有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值