types of machine learning figure the results plot shows that adding more latent variables to model ( -axisgreatly increases predictive power ( -axisup to point but then tails off the gain in predictive power from adding variables wears off eventually the resulting plot is shown in figure the plot in figure shows that with only latent variablesthe classifier does better job of predicting wine quality than with the original alsoadding more latent variables beyond doesn' add as much predictive power as the first this shows our choice of cutting off at variables was good oneas we' hoped we looked at how to group similar variablesbut it' also possible to group observations grouping similar observations to gain insight from the distribution of your data suppose for moment you're building website that recommends films to users based on preferences they've entered and films they've watched the chances are high that if they watch many horror movies they're likely to want to know about new horror movies and not so much about new teen romance films by grouping together users who've watched more or less the same films and set more or less the same preferencesyou can gain good deal of insight into what else they might like to have recommended the general technique we're describing here is known as clustering in this processwe attempt to divide our data set into observation subsetsor clusterswherein observations should be similar to those in the same cluster but differ greatly from the observations in other clusters figure gives you visual idea of what clustering aims to achieve the circles in the top left of the figure are clearly close to each other while being farther away from the others the same is true of the crosses in the top right scikit-learn implements several common algorithms for clustering data in its sklearn cluster moduleincluding the -means algorithmaffinity propagationand spectral clustering each has use case or two for which it' more suited, although you can find comparison of all the clustering algorithms in scikit-learn at modules/clustering html