1. A method comprising: receiving data points; selecting a first subset of the data points to generate an initial set of landmarks, each data point of the first subset defining a landmark point; for each non-landmark data point, calculating first data point distances between a respective non-landmark data point and each landmark point of the initial set of landmarks; identifying a first shortest data point distance from among the first data point distances between the respective non-landmark data point and each landmark point of the initial set of landmarks; and storing the first shortest data point distance as a first landmark distance for the respective non-landmark data point; identifying a non-landmark data point with a longest first landmark distance in comparison with other first landmark distances of other non-landmark data points; and adding the non-landmark data point associated with the longest first landmark distance as a first landmark point to the initial set of landmarks to generate an expanded set of landmark points.