pytorch加州房价数据集
时间: 2024-12-27 17:27:13 浏览: 4
### 使用 PyTorch 处理加州房价数据集
为了使用 PyTorch 来加载和处理加州房价数据集,可以遵循以下方法:
#### 准备环境
确保安装了必要的库,如 `pandas` 和 `torchvision`。可以通过 pip 安装这些依赖项。
```bash
pip install pandas torch torchvision scikit-learn
```
#### 加载数据集
利用 Scikit-Learn 提供的数据接口快速获取加州房价数据集,并将其转换为适合 PyTorch 模型输入的形式。
```python
from sklearn.datasets import fetch_california_housing
import pandas as pd
import numpy as np
# 获取 California Housing 数据集
data = fetch_california_housing()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['target'] = data.target
```
#### 数据预处理
对数据进行标准化处理,这有助于加速收敛过程并提高模型性能。这里采用 MinMaxScaler 对特征值做缩放变换[^3]。
```python
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
X = df.drop('target', axis=1).values.astype(np.float32)
y = df[['target']].values.reshape(-1, 1).astype(np.float32)
scaler_x = StandardScaler().fit(X)
scaled_X = scaler_x.transform(X)
scaler_y = StandardScaler().fit(y)
scaled_y = scaler_y.transform(y)
# 划分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(scaled_X, scaled_y, test_size=0.2, random_state=42)
```
#### 创建 Dataset 类
定义自定义的 Dataset 子类以适应特定的任务需求,方便后续 DataLoader 调用。
```python
import torch
from torch.utils.data import Dataset, DataLoader
class HousePriceDataset(Dataset):
def __init__(self, features, labels):
self.features = torch.tensor(features)
self.labels = torch.tensor(labels)
def __len__(self):
return len(self.labels)
def __getitem__(self, idx):
feature = self.features[idx]
label = self.labels[idx]
sample = {"features": feature, "label": label}
return sample
train_dataset = HousePriceDataset(X_train, y_train)
test_dataset = HousePriceDataset(X_test, y_test)
batch_size = 64
train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=batch_size * 2, shuffle=False)
```
通过上述操作,已经成功地将原始数据转化为适用于 PyTorch 训练流程的标准形式,并构建好了相应的迭代器对象 `DataLoader`,可用于进一步设计神经网络架构以及执行具体的训练任务。
阅读全文