A general framework for adaptive nonparametric dimensionality reduction