I am building a ML model to predict future TV audiences based on historical audience data. We currently have a forecasting tool that is using timeseries modelling to make its predictions (mainly ARIMA models). As we want to expand our data input to external factors (weather/channel programming/etc) i'm training a ML model to evaluate our options.
Currently i have the following additional information on top of the audience data:
- weather prediction (temperature, rain/snow, sunshine)
- program category before/after
Based on this info I've created a feature set consisting of a number of lagged timeseries features (audiences week before, month before etc.) plus the weather & programming info. I'm currently using a XGBoost model to evaluate my results and I'm unable to match the performance of the timeseries model based on MSE & Explained variance metrics. (timeseries is performing better)
I'm worried that I'm focusing too much on comparing the performance metrics. I've also tried to introduce log differencing on my y variable and have gotten better performance by doing so, however having to transfer the predictions back to the original state makes me doubt my actions.
As i do not have any experience in replacing timeseries with ML models i was wondering if I'm missing something in my approach here? Also any suggestions for feature creation are welcome.
Thanks in advance for all the help