1. A computer-implemented method of generating a spatio-temporal pattern model for spatio-temporal pattern recognition, the method comprising: receiving a plurality of training trajectories, each training trajectory including a plurality of diverse data points representative of a spatio-temporal pattern, the received training trajectories defining an area; partitioning the area into a plurality of observed clusters and a non-observed complementary cluster; and generating the spatio-temporal pattern model to include the observed clusters and the non-observed complementary cluster.