Dimensionality Reduction for Machine Learning