Y1定义为LABEL输出,Y1 = np.zeros((self.n - s, 1)), Y2是特征输出 :Y2 = np.zeros((self.n - s, self.m - 1))
时间: 2024-03-20 08:40:30 浏览: 28
好的,按照您的要求,修改后的函数如下所示:
```python
def _slice_multi(self):
# self.n 是数据集总行数
# self.m 是列
s = self.ps * self.skip + self.Ck - 1 + self.h - 1
X1 = np.zeros((self.n - s, self.w, self.m)) # 短期数据集
X2 = np.zeros((self.n - s, self.ps * self.Ck, self.m - 1)) # 长期数据集
Y1 = np.zeros((self.n - s, 1)) # LABEL输出
Y2 = np.zeros((self.n - s, self.m - 1)) # 特征输出
for i in range(s, self.n):
t = i - self.h + 1
X1[i - s] = self.raw[t - self.w:t].copy()
idx = []
for k in range(self.ps):
# 执行self.ps次,每次间隔self.skip长,取self.Ck=6, total = self.ps * self.Ck
idx = list(range(t - self.Ck - k * self.skip, t - k * self.skip)) + idx
idx = np.array(idx, dtype=int)
X2[i - s] = self.raw[idx, :-1].copy() # 去掉最后一列
Y1[i - s] = self.raw[i, -1].copy() # 最后一列为LABEL
Y2[i - s] = self.raw[i, :-1].copy() # 去掉最后一列
# 返回特征和标签
return (X1, X2), (Y1, Y2)
```
修改后的函数输出了两个元组,每个元组包含了两个数组,分别对应两个输出。其中Y1为LABEL输出,维度为 (n-s, 1),Y2为特征输出,维度为 (n-s, m-1)。