编写pytorch代码,定义归一化器StandardScaler,读取特征训练集X.csv,将特征集转换为(行,列,1)的3维张量,对其归一化,对特征训练集数据进行fit操作,得到均值和标准差,然后调用归一化器对特征验证集y.csv进行transform操作,用相同的均值和标准差对验证集进行操作,转换为张量,进行归一化,保存张量为csv文件
时间: 2024-03-25 20:36:51 浏览: 90
好的,以下是代码实现:
```python
import torch
import pandas as pd
class StandardScaler:
def __init__(self):
self.mean = None
self.std = None
def fit(self, X):
self.mean = torch.mean(X, dim=0)
self.std = torch.std(X, dim=0)
def transform(self, X):
return (X - self.mean) / self.std
# 读取特征训练集X.csv
X_df = pd.read_csv('X.csv')
# 将特征集转换为(行,列,1)的3维张量
X = torch.tensor(X_df.values).float().unsqueeze(-1)
# 对其归一化,对特征训练集数据进行fit操作,得到均值和标准差
scaler = StandardScaler()
scaler.fit(X)
# 读取特征验证集y.csv
y_df = pd.read_csv('y.csv')
# 调用归一化器对特征验证集y.csv进行transform操作,用相同的均值和标准差对验证集进行操作,转换为张量,进行归一化
y = torch.tensor(y_df.values).float().unsqueeze(-1)
y_normalized = scaler.transform(y)
# 保存张量为csv文件
y_normalized_df = pd.DataFrame(y_normalized.squeeze().numpy())
y_normalized_df.to_csv('y_normalized.csv', index=False)
```
希望能够帮到你!
阅读全文