LSTM解释中的 x_train和y_train



举个例子,我有一个2列的数据框架:

Dates          code     count
2022-01-01     123       202
2022-01-02     123       132 
2022-01-03     123       422 
2022-01-04     123       220 
2022-01-05     123       102 

假设我有80行,所以大约3个月的数据。我想用LSTM来做时间序列分析。因此,我输入以下代码,拆分并调用:

train_size = int(len(frame) * 0.8)
val_size = len(frame) - train_size
train, val = frame[0:train_size], frame[train_size:len(frame)]

嫩洋葱

scaler = MinMaxScaler(feature_range=(0, 1))
train = scaler.fit_transform(train)

但是它变成了错误:

The DType <class 'numpy.dtype[int64]'> could not be promoted by <class 'numpy.dtype[datetime64]'>. This means that no common DType exists for the given inputs. For example they cannot be stored in a single array unless the dtype is `object`. The full list of DTypes is: (<class 'numpy.dtype[int64]'>, <class 'numpy.dtype[datetime64]'>, <class 'numpy.dtype[int64]'>)

这个错误到底是什么意思?由于

该错误告诉您,第一列中变量的datetime格式是由"-"分隔的日期,并且该库要求您具有int64形式的数字数据类型或位大小为64的整数来处理。因此,为了解决这个问题,我建议您使用熊猫,并将日期分成各自的日、月、年。例如,您的年是2022,月是01,因此它不会产生太多信息,因此您可以使用df['Dates_days']=df[‘Dates’].dt.week在单独的列中存储星期几,即1,2,3,4,etc.,信息,并将其用作进一步计算的日期代表。

如果你有3个月的数据,如你所指出的,但同年,你可以连接两列的方式,datetime03-04-20220304的形式,现在是int64或一个数字数据类型。您可以对数字施加相应的约束,并将它们用于您想要的任何目的!

最新更新