https://medium.com/@monocosmo77/working-with-nonlinear-dimensionality-reduction-part2-machine-learning-cf8e511a6a87