预测的日期和时间值

时间:2019-04-29 12:54:51

标签: python keras deep-learning time-series prediction

我正在一个项目中,用于按日期和时间预测-1到1之间的值。 我有一个包含100个预测值的数据集,并将数据分成70个训练集和30个测试集。 数据包含:日期和时间(2019-04-25 21:00:00)和预测(-1至1值)

当我尝试在火车上致电fit_transform时,出现错误消息:

  

“ ValueError:预期的2D数组,取而代之的是1D数组:array = [-1。-1。   1. -1。 -1。 -1。 -1。 -1。 -1。 -1。 -1。 -1。 -1。 1. -1。 1. -1。 1。     1. -1。 1. -1。 -1。 -1。 -1。 -1。 -1。 1. -1。 -1。 -1。 1. -1。 -1。 -1。 -1。 -1。 -1。 1. -1。 -1。 -1。 -1。 -1。 -1。 -1。 1. -1。 -1。 -1。 1. -1。 -1。 -1。 -1。 -1。]。如果数据具有单个功能,则使用array.reshape(-1,1)重整数据;如果数据具有单个特征,则使用array.reshape(1,-1)重整数据   包含一个样本。”

   df = pd.read_csv(file_to_read)
   df['Date']=pd.to_datetime(df['Date'])
   df=df.set_index(['Date'],drop=True)
   print(df.head(size))

   #Index for prediction 
   pred_index=int((size*30)/100)
   from_specific_time=df.index[pred_index]

   split_date=pd.Timestamp(from_specific_time)
   df=df['Predict']
   train=df.loc[split_date:]
   test=df.loc[:split_date]

   plt.figure(figsize=(10,6))
   ax=train.plot()
   test.plot(ax=ax)
   plt.legend(['train','test'])

   scaler=MinMaxScaler(feature_range=(-1,1))
   train_scaler=scaler.fit_transform(train)
   test_scaler=scaler.transform(test)

我想通过csv中的确切时间创建一个时间序列,然后预测测试值..我不确定自己做错了什么。 顺便说一句,我正在学习本教程:https://towardsdatascience.com/an-introduction-on-time-series-forecasting-with-simple-neura-networks-lstm-f788390915b

谢谢!

1 个答案:

答案 0 :(得分:0)

错误指出它需要2D数组。因此,尝试将数组转换为2D,

train = ([train])
train_scaler = scaler.fit_transform(train)