参数为PTRATIO,RAD,ZN写一个波士顿房价预测用pytorch神经网络python代码并将数据可视化
时间: 2024-06-09 20:09:56 浏览: 196
这里给出一个简单的波士顿房价预测的 PyTorch 神经网络代码,使用了三个特征变量,即 PTRATIO、RAD 和 ZN。
```python
import torch
import torch.nn as nn
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('boston_housing.csv')
x = data[['PTRATIO', 'RAD', 'ZN']].values
y = data['MEDV'].values
# 数据归一化
x = (x - np.mean(x, axis=0)) / np.std(x, axis=0)
y = (y - np.mean(y)) / np.std(y)
# 将 numpy 数组转为 tensor
x = torch.from_numpy(x).float()
y = torch.from_numpy(y).float()
# 定义神经网络模型
class Net(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(Net, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.fc2 = nn.Linear(hidden_size, output_size)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
net = Net(input_size=3, hidden_size=10, output_size=1)
# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = torch.optim.Adam(net.parameters(), lr=0.01)
# 训练神经网络
num_epochs = 1000
for epoch in range(num_epochs):
# 前向传播
outputs = net(x)
loss = criterion(outputs, y.unsqueeze(1))
# 反向传播和优化
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch+1) % 100 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, loss.item()))
# 可视化预测结果
predicted = net(x).detach().numpy()
plt.plot(y, label='true')
plt.plot(predicted, label='predicted')
plt.legend()
plt.show()
```
解释一下代码的主要步骤:
1. 读取数据,并将特征变量进行归一化处理。
2. 定义了一个简单的神经网络模型,包含一个输入层、一个隐藏层和一个输出层。
3. 定义了损失函数和优化器。
4. 在循环中进行前向传播、反向传播和优化,训练神经网络。
5. 最后将预测结果可视化,用蓝色表示真实值,用橙色表示预测值。
需要注意的是,这里只是一个简单的示例,实际应用中可能需要更加复杂的神经网络结构和更多的特征变量。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)