Cluster analysis is a technique used to group similar objects together based on their characteristics. It involves calculating distances between objects to determine which ones are most similar and should be clustered together. There are hierarchical and non-hierarchical approaches to cluster analysis. Hierarchical clustering starts with each object in its own cluster and then combines the most similar clusters together in each step, while non-hierarchical clustering assigns objects directly to pre-specified clusters. A combination of the two methods is often best to determine the optimal number of clusters.