We are trying to work on a Machine Learning application to attempt to predict market regime changes (bull, bear, stale?). Generally a ML algorithm needs well defined training data for establishing its patterns. What we are looking for is how is the best way to define the training data set.
As an example, take SP500 historical chart:
A visual inspection suggests a bear regime around 2008, another around 2015 and that we may be currently experiencing one in 2018. Other years suggest bull regimes.
What are decent systematic ways to automatically identify such regimes? I know Hidden Markov Chains have been used for such purposes. Is it a good choice? Are there other alternatives?