https://medium.com/@monocosmo77/working-with-nonlinear-dimensionality-reduction-part3-machine-learning-432def477c03