0

I have hourly data for 365 days, and I would like to train a neural network model for 7 days and predict 8th day hourly data. It is a time series 24-h ahead regression problem. I am also applying such an approach instead of predicting all day data I am predicting each hour, so my neural network model has 1 output and 6 inputs. We can think that each days and each hours are features. I am training the model as follows Xtrain = Day-1 Hour-1, Day-2 Hour-1 ... Day-6 Hour-1 (6 sample,1 feature), Ytrain = Day-7 Hour-1, after training I am giving Day-7 Hour-1 to predict Day-8 Hour-1

Xtrain = Day-2 Hour-1, Day-3 Hour-1 ... Day-7 Hour-1 (6 sample, 1 feature), Ytrain = Day-8 Hour-1, after training I am giving Day-8 Hour-1 to predict Day-9 Hour-1

After I predict all hour-1 values I am repeating this for Hour-2, Hour-3 ... Hour-24. This procedure goes up to 365 days. First of all, Is this approach valid?

The problem is, the model predicts the exact same values of previous day. Exact same values of previous day!

Why do you think this happens, what might be the issue?

I have also tried training with l2 regularizer, but results are almost same.

NN --> 6 Inputs -> 12 Hidden Neuron -> 1 Output. Using Adam optimizer, 5k Epochs and RandomUniform Initializer.

EDIT: Same happened if I use choose 8 random hourly value as feature for each day as Xtrain = D1-h6 D1-h8 D1-h10 D1-h12 D1-h14 D1-h16 D1-h18 D1-h20 ... D2 ..... D6 Ytrain = D7 h1 to h24 Xtest = D2-h6 D2-h8 D2-h10 D2-h12 D2-h14 D2-h16 D2-h18 D2-h20 ... D3 ..... D7 Predict = D8 h1 to h24

D8 values are exactly the same with D7 values.

Reiso
  • 68
  • 8
  • Are the two smaller values because of Saturday and Sunday? – sjw Aug 28 '17 at 09:36
  • Maybe the learning rate is too high. It could "overwrite" what it learned previously and that's why it only predicts the same as last day. Try setting to to a low value, such as 0.05 or 0.1. Are you using a Recurrent Neural net, such as LSTM? – hh32 Aug 28 '17 at 10:19
  • thanks for the comments. I am using Multi Layer Perceptron. Learning rate is 0.001. To be more specific keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0) – Reiso Aug 28 '17 at 10:55
  • this is solar irradiance data, days have no affect on it, so I didn't include days to the model. – Reiso Aug 28 '17 at 11:01
  • Try taking the first-differences of your time series and using the first-differences as your target. – Sycorax Jul 14 '18 at 02:35

0 Answers0