As Mark Twain once said, ”History doesn’t repeat itself, but it does rhyme.” Despite growing at around 9% on average since 1900, the SP500 index has gone through many cycles. In this paper, we develop a systematic approach to investigate two key questions: (1) How do we identify regimes with vastly different characteristics? (2) How do we incorporate this regime information in portfolio decisions? Firstly, we use a Mixed Integer Programming (MIP) formulation of the Jump Model to identify three regimes in the markets: Normal, Intermediate and Crash. Next, we show that various off-the-shelf Machine Learning techniques are highly accurate in predicting the out-of-sample regime. Furthermore, we demonstrate how the Regime-Switching Risk Parity and Mean-Variance portfolios outperform their original counterparts and the benchmark Equal Weight portfolio, especially in Crash regimes.