基于pytorch的线性回归预测

#f(x)=w*x+b x代表学历 f(x)代表收入
#找到合适的w和b,使得(f(x)-y)^2越小越好 即求解参数w和b

import torch
import torch.nn as nn
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

#打开文件
data=pd.read_csv(r'D:/pycharmworkspace/ISLR-master/Income1.csv')
plt.scatter(data.Education,data.Income)
plt.xlabel('Education')
plt.ylabel('Income')

#数据预处理
#values将数据以列表形式返回 reshape(-1,1)-1代表未指定 1代表指定1列 astype将数据类型转换成统一的float32类型
# torch.from_numpy将numpy数据转换成tensor数据
X=torch.from_numpy(data.Education.values.reshape(-1,1).astype(np.float32))
Y=torch.from_numpy(data.Income.values.reshape(-1,1).astype(np.float32))
#创建模型
#output = w*input + b   nn.Linear会随机初始化w和b 1个输入 1个输出
model = nn.Linear(1,1)
#损失函数:均方误差即预测值和真实值之间差的平方取均值
loss_fn = nn.MSELoss()
#优化:随机梯度下降算法 torch里的optim中有SGD优化算法
#model.parameters()是要优化model里的w和b参数 lr=0.0001是学习速率
opt = torch.optim.SGD(model.parameters(),lr=0.0001)
#对全部数据训练5000次
for epoch in rang
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一种基于Python的科学计算库,它广泛应用于深度学习和人工智能领域。其中,PyTorch实现了许多机器学习算法,包括线性回归线性回归是一种用于建立输入变量和输出变量之间线性关系的机器学习算法。在PyTorch中,我们可以使用torch.nn模块来实现线性回归。 下面是一个简单的PyTorch线性回归模型的代码示例: ```python import torch import torch.nn as nn import matplotlib.pyplot as plt # 创建训练数据 x = torch.randn(100, 1) * 10 y = x + 3 * torch.randn(100, 1) # 定义模型 model = nn.Linear(1, 1) # 定义损失函数 criterion = nn.MSELoss() # 定义优化器 optimizer = torch.optim.SGD(model.parameters(), lr=0.01) # 训练模型 num_epochs = 1000 for epoch in range(num_epochs): # 前向传播 y_pred = model(x) loss = criterion(y_pred, y) # 反向传播 optimizer.zero_grad() loss.backward() optimizer.step() # 打印损失 if (epoch+1) % 100 == 0: print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item())) # 可视化结果 predicted = model(x).detach().numpy() plt.plot(x.numpy(), y.numpy(), 'ro', label='Original data') plt.plot(x.numpy(), predicted, label='Fitted line') plt.legend() plt.show() ``` 在这个例子中,我们首先创建了100个随机数作为输入数据,并使用这些数据生成对应的输出数据。然后,我们定义了一个具有单个输入和输出的线性模型,并将均方误差(MSE)作为损失函数。 接下来,我们使用随机梯度下降(SGD)作为优化器来训练模型。在每个epoch中,我们执行了一次前向传播和反向传播,并使用优化器来更新模型参数。 最后,我们可视化了模型预测结果和原始数据,以便更好地理解模型的性能。 总的来说,PyTorch提供了一个简单而强大的方法来实现线性回归模型。通过使用PyTorch,我们可以轻松地定义模型、损失函数和优化器,并进行训练和预测
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值