For which machine learning algorithms is it in general recommended to normalize or scale the data?
I have for example heard that K-means works best if you scale the data beforehand.
Those algorithms in which some notion of distance is there and multiple features which are in different distance scales require normalisation. For example if you have salaries which are more than 50k and ages, it's better to normalise them before using for training.Also if you are regularsing , different features will be penalized by their magnitude making salary more heavily penalised.If you normalise them,this can be prevented.
Whenever there is a comparision of various features or their estimates, it's important to scale/normalize before applying algorithms such as K-means/PCA and other dimensionality reduction algorithms.