Clustering, or cluster analysis, is another family of unsupervised learning algorithms. The goal of clustering is to organize data into clusters such that the similar items end up in the same cluster, and dissimilar items in different ones.
There are many different algorithm families for performing clustering, and they differ in how they group elements.
The most common families are as follows:
- Hierarchical: This organizes the dataset into a hierarchy, for example, agglomerative and divisive clustering. The result is typically a dendrogram.
- Partitioning: This splits the dataset into K disjoint classes--K is often specified in advance--for example, K-means.
- Density-based: This organizes the items based on density regions; if there are many items in some dense regions, they form a cluster, for example, DBSCAN.
- Graph-based: This represents the relations between items as a graph and applies grouping algorithms from the graph theory, for example, connected components and minimal spanning...