On Data-Dependent Random Features for Improved Generalization in Supervised Learning