  We develop a new method to find the number of volatility regimes in a
nonstationary financial time series by applying unsupervised learning to its
volatility structure. We use change point detection to partition a time series
into locally stationary segments and then compute a distance matrix between
segment distributions. The segments are clustered into a learned number of
discrete volatility regimes via an optimization routine. Using this framework,
we determine a volatility clustering structure for financial indices, large-cap
equities, exchange-traded funds and currency pairs. Our method overcomes the
rigid assumptions necessary to implement many parametric regime-switching
models, while effectively distilling a time series into several characteristic
behaviours. Our results provide significant simplification of these time series
and a strong descriptive analysis of prior behaviours of volatility. Finally,
we create and validate a dynamic trading strategy that learns the optimal match
between the current distribution of a time series and its past regimes, thereby
making online risk-avoidance decisions in the present.
