Function Preserving Projection for Scalable Exploration of High-Dimensional Data