1. A method of generating a spatio-temporal pattern model for spatio-temporal pattern recognition, the method comprising: receiving a plurality of training trajectories in a spatial area, each training trajectory including a plurality of diverse data points representative of a spatio-temporal pattern; partitioning the spatial area into a plurality of observed clusters and an unpopulated complementary cluster, each observed cluster comprising a set of diverse data points from the plurality of diverse data points, and the unpopulated complementary cluster devoid of the plurality of diverse data points that are representative of the spatio-temporal pattern; and generating the spatio-temporal pattern model to include the plurality of observed clusters and the unpopulated complementary cluster.