基于pytorch的房价预测

简介

本文主要介绍的基于pytorch和房价预测深度学习网络构建。

该系统使用的是网络上的开源数据:

实现了对房价数据的处理,包括词频统计、情感分析等,并将分析结果以图表形式进行展示。通过这个系统,用户可以便捷地进行分析和可视化。

完整代码在最下方,想要先看源码的同学可以移步本文最下方进行下载。

博主也参考过文本分类相关模型的文章,但大多是理论大于方法。很多同学肯定对原理不需要过多了解,只需要搭建出一个可视化系统即可。

也正是因为我发现网上大多的帖子只是针对原理进行介绍,功能实现的相对很少。

如果您有以上想法,那就找对地方了!


不多废话,直接进入正题!

数据简介

数据不多,主要包括了几十年内的房价数据

首先对数据进行读取和预处理。

读取数据后,对x数据进行标准化处理,以便于后续训练的稳定性,并转换为tensor格式

数据分析

  • 绘制图像

由于数据量较少,所以将整个训练集作为测试集,观察生成的图像

构建神经网络训练

python 复制代码
import torch
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import torch.optim as optim
import warnings
warnings.filterwarnings("ignore")
 
 
# In[4]:
 
 
features = pd.read_csv('房价预测.csv')
 
features
 
 
# In[26]:
 
 
year = []
price = []
for i in range(0,12):
    year.append([features['Year'][i]])
    price.append([features['Price'][i]])
    
 
 
# In[27]:
 
 
year = np.array(year)
price = np.array(price)
year,price
 
 
# In[53]:
 
 
from sklearn import preprocessing
 
# 特征标准化处理
year = preprocessing.StandardScaler().fit_transform(year)
year[0]
 
 
# In[54]:
 
 
x = torch.tensor(year,dtype=float)
y = torch.tensor(price,dtype=float)
x,y
 
 
# In[62]:
 
 
learning_rate = 0.0001
weights1 = torch.randn((1,1),dtype=float,requires_grad=True)
bias1 = torch.randn(1,dtype=float,requires_grad=True)
 
 
losses = []
 
 
for i in range(0, 5000):
    ans = x.mm(weights1) + bias1
    #计算损失
    criterion = torch.nn.MSELoss()  # 使用适当的损失函数
    loss = criterion(ans, y)
    
    losses.append(loss)
    
    if i%100==0:
        
        print(f'loss={loss},epoch={i},w={weights1}')
        
    #反向传播
    loss.backward()
    #更新参数
    weights1.data.add_(-learning_rate*weights1.grad.data)
    bias1.data.add_(-learning_rate*bias1.grad.data)
    #清空
    weights1.grad.data.zero_()
    bias1.grad.data.zero_()
# 使用 features['Year'] 和 features['Price'] 创建日期和价格的列表
year = features['Year']
price = features['Price']
# 将 ans 转换为 Python 列表
ans_list = ans.tolist()
 
# 提取列表中的每个元素(确保是单个的标量值)
predictions = [item[0] for item in ans_list]
 
# 创建一个表格来存日期和其对应的标签数值
true_data = pd.DataFrame(data={'date': year, 'actual': price})
predictions_data = pd.DataFrame(data={'date': year, 'prediction': predictions})
# 真实值
plt.plot(true_data['date'], true_data['actual'], 'b-', label='actual')
 
# 预测值
plt.plot(predictions_data['date'], predictions_data['prediction'], 'ro', label='prediction')
plt.xticks(rotation='60')
plt.legend()
 
# 图名
plt.xlabel('Date')
plt.ylabel('Price')  # 注意修改为你的标签
plt.title('Actual and Predicted Values')
plt.show()
相关推荐
东方佑2 分钟前
当人眼遇见神经网络:用残差结构模拟视觉调焦的奇妙类比
人工智能·深度学习·神经网络
烟锁池塘柳07 分钟前
【已解决,亲测有效】解决使用Python Matplotlib库绘制图表中出现中文乱码(中文显示为框)的问题的方法
开发语言·python·matplotlib
周小码9 分钟前
llama-stack实战:Python构建Llama应用的可组合开发框架(8k星)
开发语言·python·llama
智驱力人工智能10 分钟前
深度学习在离岗检测中的应用
人工智能·深度学习·安全·视觉检测·离岗检测
hjs_deeplearning14 分钟前
认知篇#12:基于非深度学习方法的图像特征提取
人工智能·深度学习·目标检测
IT学长编程15 分钟前
计算机毕业设计 基于Hadoop的南昌房价数据分析系统的设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试
大数据·hadoop·python·毕业设计·课程设计·毕业论文·豆瓣电影数据可视化分析
Tony Bai18 分钟前
【AI应用开发第一课】11 实战串讲:用 Go 构建一个 AI 驱动的 GitHub Issue 助手
人工智能·issue
阿杜杜不是阿木木26 分钟前
开始 ComfyUI 的 AI 绘图之旅-Flux.1 ControlNet (十)
人工智能·深度学习·ai·ai作画·lora
郑洁文26 分钟前
豆瓣网影视数据分析与应用
大数据·python·数据挖掘·数据分析
格林威32 分钟前
Linux使用-MySQL的使用
linux·运维·人工智能·数码相机·mysql·计算机视觉·视觉检测