Implementation of CNN-LSTM according to a research paper

Hi guys, I have recently completed the course and was trying to replicate the results of an open-access research paper (Air-pollution prediction in smart city, deep learning approach) but I was not able to achieve the results and I am a bit confused about what I am doing wrong.

I am having some confusion regarding:

  1. How they imputed the WD column and when? As they mentioned Spline interpolation before encoding WD values but WD also has missing values. Other than that I am getting the exact correlation values of all the other features as mentioned in Figure#8 and 10. (Right now I am doing encoding then imputation with Spline)
  2. I am not really sure which of the features were dropped from a total of 23 features (I dropped NO2, SO2, O3) because the Fig#12 mentioned 20 features.
  3. I have created the train and test set as mentioned in the paper (80/20) but not sure what was used for validation as there is callback of EarlyStopping with min delta and patience and I think there must be a validation set for that to work. (Currently passing the test_ds as validation_data)
  4. I dont know if they shuffled the data or not. I am getting better results with shuffling.
  5. They mentioned 1 day lag, so I created the tensors like this [samples, 24hrs(for 1 day lag), 20 features(as in fig 12)] with 32 batch size with the help of build dataset function.
  6. But after all I am NOT getting 0.989 R2, 6.x MAE, or 12.x RMSE on the test or train set. And my evaluation looks like this, 0.8 or 0.9 R2, 10.x or 9.x MAE, and 18.x or 16.x RMSE

This is my first implementation and I am using the code from lectures. I have tried a lot to replicate the results as mentioned in paper but could not, if you guys have any idea so kindly help.

1 Like

Please share the following details for someone with the bandwidth to help you out on this non-course related issues:

  1. Link to the code repository
  2. Link to paper as pdf with public access
  3. Usually, those who author a paper share their implementation. Is there any information you can share about this?