Cluster analysis is the assignment of a set of observations into subsets (called "clusters") so that observations within the same cluster are similar according to one or more predesignated criteria, while observations drawn from different clusters are dissimilar. Different clustering techniques make different assumptions on the structure of the data, often defined by some "similarity metric" and evaluated, for example, by "internal compactness", or the similarity between members of the same cluster, and "separation", the difference between clusters. Other methods are based on "estimated density" and "graph connectivity".