I am trying to predict the value of a variable in a multivariate time series; of which I have multiple time datasets (one system = one dataset containing 10 variables in time and average 120,000 rows) which are quite similar in trend and value ranges. The dataset contains 10 variables, 1 to be predicted (green one below) and 9 independent ones (only 3 shown here).
The independent variables are already chosen by a domain guy(I’m the domain guy), after careful consideration from over 160 variables. I have tried LSTM when treating data as time series and boosted regressions when treating the data as cross-sectional. After months of work I’ve realized that I don’t have realization on how to look at the data from a machine learning point of view. The problem now is, what is the definition of my data? In my head the conceptual title of my dataset is multiple, multivariate, multi-trend, timeseries data - using which I’m trying to predict a variable cross-sectionally. There are questions and tutorials all over about dealing with each of the above individually; but how should I simplify this problem?
I stacked together all the data from all the systems (one on top of the other). The results of both models can capture the trend very well, but there are issues in scaling as seen below (red is predicted): The scaling difference can vary in magnitude and direction (+ve/ -ve). I normalized the stacked dataset globally; and also tried normalizing each system dataset individually and then stacking, the issue stayed.
Then I tried to split one-system data 70:30, train a model on 70% of one system data and test on remaining 30% using LSTM. The results were very good. I concluded that the scaling issue is being caused by stacking the data together. But if can’t stack the data together, how else do I use all that data? Now I’m trying to decrypt the multi-trend in time (because I think that is also causing a scaling issue). The trend is supposed to be handled with the help of two categorical variables in the dataset. But now I’m thinking putting these separate trends in time to separate neurons in the network, consequently building separate activation functions for separate trends. To summarize:
- What category of ML or time-series theory does my problem fall in?
- Should I try convert non-stationary parameters to stationary before feeding it to LSTM?
- Should the NN have separate neurons to treat each trend differently, even though there are categorical variables for that (there may be an issue of oversampling with one or two categories)
- I’ve tried clustering based on averaged parameters and building separate models for each cluster, the issue was still there. Should I try a different time-series clustering approach like Euclidian distance or iSAX?