当前位置: 首页 >  技术分享 >  pytorch——房价预测

pytorch——房价预测

导读:1、首先对数据进行读取和预处理.2、读取数据后,对x数据进行标准化处理,以便于后续训练的稳定性,并转换为tensor格式.3、接下来设置训练参数和模型.这里采用回归模型,既y=x*weight1+bias1,设置的学习率为0.0006,损失函数采用了MSE(均方误差).4、绘制图

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


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

3、接下来设置训练参数和模型
这里采用回归模型,既y=x*weight1+bias1,设置的学习率为0.0006,损失函数采用了MSE(均方误差)

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

完整代码

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()

本文由博客一文多发平台 OpenWrite 发布!

内容
  • Job System 初探
    Job System 初探
    2023-12-05
    作者:i_dovelemon.日期:2023-08-24.主题:Fiber, Atomic Operation, MPM
  • UE源码分析:Slate 鼠标/触摸输入处理
    UE源码分析:Slate 鼠标/
    2023-12-05
    序言.UE4.25版本.本章看一下UE的Slate响应鼠标/触摸的处理,主要是按下、移动、抬起等相关。.输入处理.大致的
  • Godot中的锚点
    Godot中的锚点
    2023-12-05
    关于锚点的用处,Godot的官方文档是如此叙述的。.如果一个游戏总是用同一分辨率在同样的设备上运行, 摆放控件将是一个简
  • 《领域驱动设计》:从领域视角深入仓储(Repository)的设计和实现
    《领域驱动设计》:从领域视角深入
    2023-12-04
    一、前言 “.DDD设计的目标是关注领域模型而并非技术来创建更好的软件,假设开发人员构建了一个SQL,并将它传递给基础设
  • JVM调优篇:探索Java性能优化的必备种子面试题
    JVM调优篇:探索Java性能优
    2023-12-04
    JVM内存模型.首先面试官会询问你在进行JVM调优之前,是否了解JVM内存模型的基础知识。这是一个重要的入门问题。JVM
  • 二代水务系统架构设计分享——DDD+个性化
    二代水务系统架构设计分享——DD
    2023-12-03
    系统要求.C/S架构的单体桌面应用,可以满足客户个性化需求,易于升级和维护。相比于一代Winform,界面要求美观,控件
  • 游戏中模型动画的几种实现方式
    游戏中模型动画的几种实现方式
    2023-12-02
    游戏内动画的实现方式一般有这几种:.骨骼动画.顶点动画.材质动画.CPU蒙皮动画.骨骼动画.骨骼动画是一种基于骨骼系统的
  • 五年经验的前端社招被问:CPU 和 GPU 到底有啥区别?
    五年经验的前端社招被问:CPU
    2023-12-01
    首先来看 CPU 和 GPU 的百科解释:.CPU(Central ProcessingUnit,中央处理器) :功能主
  • ***性能优化和调整服务
    ***性能优化和调整服务
    2023-12-31
    ***性能优化和调整服务.***性能优化和调整服务是指针对服务器的硬件和软件进行调整和优化,以提高其运行效率和稳定性的服
  • 科技创新孵化器服务
    科技创新孵化器服务
    2023-12-16
    科技创新孵化器服务.科技创新孵化器是指为初创科技企业提供办公、技术、**和资金服务的机构,而科技创新孵化器服务则是指这些
  • ***迁移与升级解决方案
    ***迁移与升级解决方案
    2024-01-05
    ***迁移与升级解决方案.随着业务的不断扩大和发展,很多企业逐渐意识到原有的***已经不能满足日益增长的需求,因此需要进
  • 虚拟现实技术开发
    虚拟现实技术开发
    2024-01-15
    虚拟现实技术开发.虚拟现实技术已经成为了当今科技行业的热门话题,它的发展日益迅猛,给人们的生活和工作带来了巨大的变革。在
  • 全球电子元件市场趋势分析
    全球电子元件市场趋势分析
    2023-12-31
    全球电子元件市场趋势分析.近年来,全球电子元件市场呈现出不断增长的趋势。随着科技的不断发展和智能设备的普及,电子元件市场
  • 电子元件质量检测与认证服务
    电子元件质量检测与认证服务
    2024-01-05
    电子元件质量检测与认证服务.为什么需要电子元件质量检测与认证服务?.随着电子产业的不断发展,电子元件在各个生产领域都起着
  • ***虚拟化技术咨询服务
    ***虚拟化技术咨询服务
    2023-12-21
    ***虚拟化技术咨询服务.在当今数字化时代,***虚拟化技术越来越受到企业和个人用户的青睐。虚拟化技术通过将物理***划
  • 高性能电子元件**
    高性能电子元件**
    2024-01-10
    高性能电子元件**.随着科技的不断进步,电子行业的发展日新月异。高性能电子元件作为电子产品的关键组成部分,对于产品的性能
  • 定制化电子元件解决方案
    定制化电子元件解决方案
    2024-01-15
    定制化电子元件解决方案.在现代科技发展迅速的时代,电子元件的需求日益增加,同时对于定制化的需求也在不断提升。定制化电子元
  • ***安全加固与防护方案
    ***安全加固与防护方案
    2024-01-10
    ***安全加固与防护方案.随着互联网的快速发展,***安全问题日益凸显。一旦***遭受攻击,可能导致数据泄露、服务中断甚