Exponential forecast and Growth Ratio in ML.Net (ForecastBySsa)

sameer srivastava 6 Reputation points
2020-11-23T18:38:53.863+00:00

I am using ML.Net for my machine learning project. My primary need is time series forecasting. For that, I am using ForecastBySsa method. This method works for a variety of data with different trends and seasonality, but in certain cases, it uses exponential growth for making forecasts. And when you look at the training data, exponential growth does not look to be the primary candidate. In some cases, forecasts could have been made using treating training data as lying on a straight line. One common pattern in such cases is that there are some spikes/structural changes in the training data near the end of data set.

On looking into details of parameters of the ForecastBySsa method, I found that there is a parameter named "maxGrowth". Documentation about this does not contain much detail other than "The maximum growth on the exponential trend". Looks like using this, one can change how fast exponential growth would be by setting the Growth Rate (growth over a time period). Its default value is set to null. I tried to set its value to 1.1 over 12 periods and exponential growth changed into straight lines with a positive slope. Bringing it below 1 causes the forecast to be downward trending even for the cases where the training data had an upward trend.

Is it right to play with maxGrowth parameter to adjust the forecast or should I leave it to the algorithm to figure out the best value for it?

Is there any resource that gives a detailed explanation of the ForecastBySsa method and its parameters?

What is the best way to deal with data which may have spikes and/or structural shifts in it?

.NET Machine learning
.NET Machine learning
.NET: Microsoft Technologies based on the .NET software framework.Machine learning: A type of artificial intelligence focused on enabling computers to use observed data to evolve new behaviors that have not been explicitly programmed.
159 questions
0 comments No comments
{count} vote

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.