Cluster analysis
Machine learning and data mining 

Machinelearning venues 

Cluster analysis or clustering is the task of grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar (in some sense) to each other than to those in other groups (clusters). It is a main task of exploratory data mining, and a common technique for statistical data analysis, used in many fields, including machine learning, pattern recognition, image analysis, information retrieval, bioinformatics, data compression, and computer graphics.
Cluster analysis itself is not one specific algorithm, but the general task to be solved. It can be achieved by various algorithms that differ significantly in their understanding of what constitutes a cluster and how to efficiently find them. Popular notions of clusters include groups with small distances between cluster members, dense areas of the data space, intervals or particular statistical distributions. Clustering can therefore be formulated as a multiobjective optimization problem. The appropriate clustering algorithm and parameter settings (including parameters such as the distance function to use, a density threshold or the number of expected clusters) depend on the individual data set and intended use of the results. Cluster analysis as such is not an automatic task, but an iterative process of knowledge discovery or interactive multiobjective optimization that involves trial and failure. It is often necessary to modify data preprocessing and model parameters until the result achieves the desired values.
Cluster analysis was originated in anthropology by Driver and Kroeber in 1932 and introduced to psychology by Zubin in 1938 and Robert Tryon in 1939^{[1]}^{[2]} and famously used by Cattell beginning in 1943^{[3]} for trait theory classification in personality psychology. Nowadays besides being a core technique in data mining, clustering is used for various applied tasks including community structure detection in social networks, construction of the numerical taxonomy, botryology (from Greek βότρυς "grape") and typological analysis, functional modules or groups^{[4]} identification in biology. Clustering unlike classification besides assigning objects to the clusters also aims to identify the number of clusters.
Contents
Definition
The notion of a "cluster" cannot be precisely defined, which is one of the reasons why there are so many clustering algorithms.^{[5]} There is a common denominator: a group of similar data objects dissimilar to the objects in other groups. A "clustering" is essentially a set of clusters, usually containing all objects in the data set. Additionally, it may specify the relationship of the clusters to each other, for example, a hierarchy of clusters embedded in each other.
Clusterings can be roughly distinguished as:
 Hard clustering: each object belongs to a cluster or not, i.e. single membership of the objects in the clusters
 Soft clustering (also: fuzzy clustering): each object belongs to each cluster to a certain degree (for example, a likelihood of belonging to the cluster), i.e. multiple membership of the objects in the clusters
There are also finer distinctions possible, for example:
 Hard clustering / single membership:
 Strict partitioning clustering: each object belongs to exactly one cluster
 Strict partitioning clustering with outliers: objects can also belong to no cluster, and are considered outliers
 Soft clustering / multiple membership:
 Subspace clustering: while an overlapping clustering, within a uniquely defined subspace, clusters are not expected to overlap
 Overlapping clustering (also: alternative clustering, multiview, soft clustering): objects may belong to more than one cluster. Overlapping clustering usually means the crisp overlapping clustering, where objects with multiple membership in clusters have equal belonging degree to each of their clusters. Fuzzy or soft overlapping clustering is a generalized case when the objects have probabilistic degree of belonging to each of their clusters^{[6]}
 Multiresolution or multiscale clustering: objects equally belong to multiple clusters, which depend on the resolution or scale parameter also called granularity of the clustering. Relations between the clusters on various scales might be unknown
 Hierarchical clustering: objects that belong to a child cluster also belong to the parent cluster
Algorithms
The notion of a cluster, as found by different algorithms, varies significantly in its properties. By the clusters construction approach and applied optimization function(s), clustering algorithms can be categorized as based on:^{[7]}^{[8]}
 partition or centroidbased: Kmeans, Kmedoids, PAM, CLARA, CLARANS
 hierarchy
 agglomerative: BIRCH, CURE, ROCK, Chameleon, Louvain^{[9]}
 divisive: DIANA, GN
Among both agglomerative and divisive hierarchical clustering algorithms, further categorization can be performed by the applied optimization function: modularity: GN, CNM, Louvain, SLM
 grid: STING, CLIQUE
 density: DBSCAN, OPTICS, Meanshift
 density and distance: DD
 density distribution: DBCLASD, GMM
 probabilistic distribution models: EM, COBWEB, GMM, SOM, ART
 fuzzy theory: FCM, FCS, MM
 graph theory: CLICK, MST, HCS
 spectral graph theory: SM, NJW
 label, message or affinity propagation: LPA, SLPA, GANXiS, LabelRank, AP
 fractal theory: FC
 kernel: kernel Kmeans, kernel SOM, kernel, SVC, MMC, MKC
 swarm intelligence: ACO_based(LF), PSO_based, SFLA_based, ABC_based
 quantum theory: QC, DQC
 ensemble or consensus: CSPA, HGPA, MCLA, VM, HCE, LAC, WPCK, sCSPA, sMCLA, sHBGPA
 subspaces and manifolds: DPspace, SSC, SSCS, SGPursuit, SMMC, SCML
 neural networks and deep learning based on:^{[10]}
 selforganizing map: SOM, SOMF
 clustering deep neural networks: DNC, DEC, DBC, CCNN, IMSAT, JULE, DAC
 autoencoders: DCN, DEN, DSCNets, DMC, DEPICT, DCC
 variational autoencoders: VaDE, GMVAE
 generative adversarial networks: DAC, CatGAN, InfoGAN
A group of the clustering algorithms trading accuracy for the speed is designed for the evolving data streams clustering: STREAM, CluStream, HPStream, DenStream.
The outlined clustering categories are not exclusive and evolve in time.
By the type of the input data, clustering algorithms can be categorized by processing datasets specified by the: pairwise relations (weighted links between the graph nodes), attributes (properties of the graph nodes) and mixed.^{[11]}^{[12]}
The following overview will only list some of the prominent examples of clustering algorithms, as there are possibly over 100 published clustering algorithms. Not all provide categorize themselve. An overview of some algorithms explained in Wikipedia can be found in the list of statistics algorithms.
The most appropriate clustering algorithm for a specific task is selected considering various aspects of both the processing dataset (size and format), expected results (overlapping, hierarchical, soft clusters) and properties of the applied clustering algorithm. The following properties are typically considered: admissible time and complexity, parametrization (specific resolution of the clusters, density of points, number of clusters, etc.), admissible stability of the results, determinism and accuracy. The most appropriate clustering algorithm for a particular problem often needs to be chosen experimentally among the suitable candidates considering the outlined and other specific requirements of the solving problem.
Partition (centroidbased) clustering
The basic idea of this kind of clustering algorithms is to regard the center of data points as the center of the corresponding cluster. Kmeans and Kmedoids are the two most famous ones of this kind of clustering algorithms. Clusters are represented by a central vector, which may not necessarily be a member of the data set. When the number of clusters is fixed to k, kmeans clustering gives a formal definition as an optimization problem: find the k cluster centers and assign the objects to the nearest cluster center, such that the squared distances from the cluster are minimized.
The optimization problem itself is known to be NPhard, and thus the common approach is to search only for approximate solutions. A particularly well known approximate method is Lloyd's algorithm,^{[13]} often just referred to as "kmeans algorithm" (although another algorithm introduced this name). It does however only find a local optimum, and is commonly run multiple times with different random initializations. Variations of kmeans often include such optimizations as choosing the best of multiple runs, but also restricting the centroids to members of the data set (kmedoids), choosing medians (kmedians clustering), choosing the initial centers less randomly (kmeans++) or allowing a fuzzy cluster assignment (fuzzy cmeans).
Most kmeanstype algorithms require the number of clusters – k – to be specified in advance, which is considered to be one of the biggest drawbacks of these algorithms. Furthermore, the algorithms prefer clusters of approximately similar size, as they will always assign an object to the nearest centroid. This often leads to incorrectly cut borders of clusters (which is not surprising since the algorithm optimizes cluster centers, not cluster borders).
Kmeans has a number of interesting theoretical properties. First, it partitions the data space into a structure known as a Voronoi diagram. Second, it is conceptually close to nearest neighbor classification, and as such is popular in machine learning. Third, it can be seen as a variation of model based clustering, and Lloyd's algorithm as a variation of the Expectationmaximization algorithm for this model discussed below.
Kmeans separates data into Voronoicells, which assumes equalsized clusters (not adequate here)
Kmeans cannot represent densitybased clusters
Hierarchical clustering
Hierarchical clustering (also known as connectivitybased clustering) is based on the core idea of objects being more related to nearby objects than to objects farther away. These algorithms connect "objects" to form "clusters" based on their distance. A cluster can be described largely by the maximum distance needed to connect parts of the cluster. At different distances, different clusters will form, which can be represented using a dendrogram, which explains where the common name "hierarchical clustering" comes from: these algorithms do not provide a single partitioning of the data set, but instead provide an extensive hierarchy of clusters that merge with each other at certain distances. In a dendrogram, the yaxis marks the distance at which the clusters merge, while the objects are placed along the xaxis such that the clusters don't mix.
Connectivitybased clustering is a whole family of methods that differ by the way distances are computed. Apart from the usual choice of distance functions, the user also needs to decide on the linkage criterion (since a cluster consists of multiple objects, there are multiple candidates to compute the distance) to use. Popular choices are known as singlelinkage clustering (the minimum of object distances), complete linkage clustering (the maximum of object distances), and UPGMA or WPGMA ("Unweighted or Weighted Pair Group Method with Arithmetic Mean", also known as average linkage clustering). Furthermore, hierarchical clustering can be agglomerative (starting with single elements and aggregating them into clusters) or divisive (starting with the complete data set and dividing it into partitions).
These methods will not produce a unique partitioning of the data set, but a hierarchy from which the user still needs to choose appropriate clusters. They are not very robust towards outliers, which will either show up as additional clusters or even cause other clusters to merge (known as "chaining phenomenon", in particular with singlelinkage clustering). In the general case, the complexity is for agglomerative clustering and for divisive clustering,^{[14]} which makes them too slow for large data sets. For some special cases, optimal efficient methods (of complexity ) are known: SLINK^{[15]} for singlelinkage and CLINK^{[16]} for completelinkage clustering. In the data mining community these methods are recognized as a theoretical foundation of cluster analysis, but often considered obsolete^{[citation needed]}. They did however provide inspiration for many later methods such as density based clustering.
Singlelinkage on Gaussian data. At 35 clusters, the biggest cluster starts fragmenting into smaller parts, while before it was still connected to the second largest due to the singlelink effect.
Singlelinkage on densitybased clusters. 20 clusters extracted, most of which contain single elements, since linkage clustering does not have a notion of "noise".
Densitybased clustering
In densitybased clustering,^{[17]} clusters are defined as areas of higher density than the remainder of the data set. Objects in these sparse areas  that are required to separate clusters  are usually considered to be noise and border points.
The most popular^{[18]} density based clustering method is DBSCAN.^{[19]} In contrast to many newer methods, it features a welldefined cluster model called "densityreachability". Similar to linkage based clustering, it is based on connecting points within certain distance thresholds. However, it only connects points that satisfy a density criterion, in the original variant defined as a minimum number of other objects within this radius. A cluster consists of all densityconnected objects (which can form a cluster of an arbitrary shape, in contrast to many other methods) plus all objects that are within these objects' range. Another interesting property of DBSCAN is that its complexity is fairly low – it requires a linear number of range queries on the database – and that it will discover essentially the same results (it is deterministic for core and noise points, but not for border points) in each run, therefore there is no need to run it multiple times. OPTICS^{[20]} is a generalization of DBSCAN that removes the need to choose an appropriate value for the range parameter , and produces a hierarchical result related to that of linkage clustering. DeLiClu,^{[21]} DensityLinkClustering combines ideas from singlelinkage clustering and OPTICS, eliminating the parameter entirely and offering performance improvements over OPTICS by using an Rtree index.
The key drawback of DBSCAN and OPTICS is that they expect some kind of density drop to detect cluster borders. On data sets with, for example, overlapping Gaussian distributions – a common use case in artificial data – the cluster borders produced by these algorithms will often look arbitrary, because the cluster density decreases continuously. On a data set consisting of mixtures of Gaussians, these algorithms are nearly always outperformed by methods such as EM clustering that are able to precisely model this kind of data.
Meanshift is a clustering approach where each object is moved to the densest area in its vicinity, based on kernel density estimation. Eventually, objects converge to local maxima of density. Similar to kmeans clustering, these "density attractors" can serve as representatives for the data set, but meanshift can detect arbitraryshaped clusters similar to DBSCAN. Due to the expensive iterative procedure and density estimation, meanshift is usually slower than DBSCAN or kMeans. Besides that, the applicability of the meanshift algorithm to multidimensional data is hindered by the unsmooth behaviour of the kernel density estimate, which results in overfragmentation of cluster tails.^{[21]}
Densitybased clustering with DBSCAN.
DBSCAN assumes clusters of similar density, and may have problems separating nearby clusters
OPTICS is a DBSCAN variant, improving handling of different densities clusters
Probability distributionbased clustering
The clustering model most closely related to statistics is based on distribution models. Clusters can then easily be defined as objects belonging most likely to the same distribution. A convenient property of this approach is that this closely resembles the way artificial data sets are generated: by sampling random objects from a distribution.
While the theoretical foundation of these methods is excellent, they suffer from one key problem known as overfitting, unless constraints are put on the model complexity. A more complex model will usually be able to explain the data better, which makes choosing the appropriate model complexity inherently difficult.
One prominent method is known as Gaussian mixture models (using the expectationmaximization algorithm). Here, the data set is usually modeled with a fixed (to avoid overfitting) number of Gaussian distributions that are initialized randomly and whose parameters are iteratively optimized to better fit the data set. This will converge to a local optimum, so multiple runs may produce different results. In order to obtain a hard clustering, objects are often then assigned to the Gaussian distribution they most likely belong to; for soft clusterings, this is not necessary.
Distributionbased clustering produces complex models for clusters that can capture correlation and dependence between attributes. However, these algorithms put an extra burden on the user: for many real data sets, there may be no concisely defined mathematical model (e.g. assuming Gaussian distributions is a rather strong assumption on the data).
On Gaussiandistributed data, EM works well, since it uses Gaussians for modelling clusters
Densitybased clusters cannot be modeled using Gaussian distributions
Recent developments
In recent years, considerable effort has been put into improving the performance of existing algorithms.^{[22]}^{[23]} Among them are CLARANS (Ng and Han, 1994),^{[24]} and BIRCH (Zhang et al., 1996).^{[25]} With the recent need to process larger and larger data sets (also known as big data), the willingness to trade semantic meaning of the generated clusters for performance has been increasing. This led to the development of preclustering methods such as canopy clustering, which can process huge data sets efficiently, but the resulting "clusters" are merely a rough prepartitioning of the data set to then analyze the partitions with existing slower methods such as kmeans clustering.
For highdimensional data, many of the existing methods fail due to the curse of dimensionality, which renders particular distance functions problematic in highdimensional spaces. This led to new clustering algorithms for highdimensional data that focus on subspace clustering (where only some attributes are used, and cluster models include the relevant attributes for the cluster) and correlation clustering that also looks for arbitrary rotated ("correlated") subspace clusters that can be modeled by giving a correlation of their attributes.^{[26]} Examples for such clustering algorithms are CLIQUE^{[27]} and SUBCLU.^{[28]}
Ideas from densitybased clustering methods (in particular the DBSCAN/OPTICS family of algorithms) have been adopted to subspace clustering (HiSC,^{[29]} hierarchical subspace clustering and DiSH^{[30]}) and correlation clustering (HiCO,^{[31]} hierarchical correlation clustering, 4C^{[32]} using "correlation connectivity" and ERiC^{[33]} exploring hierarchical densitybased correlation clusters).
Several different clustering systems based on mutual information have been proposed. One is Marina Meilă's variation of information metric;^{[34]} another provides hierarchical clustering.^{[35]} Using genetic algorithms, a wide range of different fitfunctions can be optimized, including mutual information.^{[36]} Also message passing algorithms, a recent development in computer science and statistical physics, has led to the creation of new types of clustering algorithms.^{[37]}
Evaluation and assessment
Evaluation of clustering results is as difficult as the clustering itself^{[38]} and by the evaluation metrics is categorized into: intrinsic (internal) and extrinsic (external or accuracy).^{[39]} Intrinsic metrics are based on internal statistical properties of the evaluating clusters and indicate how close elements from one cluster are similar (close) to each other, and how dissimilar (distant) from elements in other clusters. Extrinsic metrics are based on comparisons between the evaluating clusters and a groundtruth (gold standard) usually built using human assessors. Extrinsic evaluation can be indirect by evaluating the utility of the clustering in its intended application.^{[40]}
Intrinsic evaluation measures suffer from the problem that they represent functions that themselves can be seen as a clustering objective and their values may not correlate with the "expected" results. For example, one could cluster the data set by the Silhouette coefficient; except that there is no known efficient algorithm for this. By using such an intrinsic measure for evaluation, one rather compares the similarity of the optimization problems,^{[40]} and not necessarily how useful the clustering is.
Extrinsic evaluation has similar problems: if we have such "ground truth" labels, then we would not need to cluster; and in practical applications we usually do not have such labels. On the other hand, the labels only reflect one possible partitioning of the data set, which does not imply that there does not exist a different, and maybe even better, clustering. However, extrinsic measures indicate how similar is the evaluating clustering to the expected (groundtruth) result, being extremely useful in practice.
Neither of these approaches can therefore ultimately and comprehensively judge the actual quality of a clustering, falling back to human evaluation,^{[40]} which is highly subjective. Nevertheless, such statistics can be quite informative in identifying ineffective clusterings, but one should not dismiss subjective human evaluation.^{[41]}
When selecting the evaluation measures, it is crucial to take into account the structure of the evaluating clusters because most of the measures applicable only to the hard clustering (having single membership of the elements in the clusters).^{[42]}
Intrinsic evaluation measures
When a clustering result is evaluated based on the data that was clustered itself, this is called intrinsic or internal evaluation. These methods usually assign the best score to the algorithm that produces clusters with high similarity within a cluster and low similarity between clusters. One drawback of using internal criteria in cluster evaluation is that high scores on an intrinsic measure do not necessarily result in effective information retrieval applications.^{[43]} Additionally, this evaluation is biased towards algorithms that use the same cluster model. For example, kmeans clustering naturally optimizes object distances, and a distancebased intrinsic criterion will likely overrate the resulting clustering.
Therefore, the intrinsic evaluation measures are best suited to get some insight into situations where one algorithm performs better than another, but this shall not imply that one algorithm produces more valid results than another.^{[5]} Validity as measured by such an index depends on the claim that this kind of structure exists in the data set. An algorithm designed for some kind of models has no chance if the data set contains a radically different set of models, or if the evaluation measures a radically different criterion.^{[5]} For example, kmeans clustering can only find convex clusters, and many evaluation indexes assume convex clusters. On a data set with nonconvex clusters neither the use of kmeans, nor of an evaluation criterion that assumes convexity, is effective.
Dozens of intrinsic evaluation measures exist, usually based on the intuition that items in the same cluster should be more similar than items in different clusters.^{[44]}^{:115–121} For example, the following methods can be used to assess the quality of clustering algorithms based on internal criterion:
 The Davies–Bouldin index can be calculated by the following formula:
 where n is the number of clusters, is the centroid of cluster , is the average distance of all elements in cluster to centroid , and is the distance between centroids and . Since algorithms that produce clusters with low intracluster distances (high intracluster similarity) and high intercluster distances (low intercluster similarity) will have a low Davies–Bouldin index, the clustering algorithm that produces a collection of clusters with the smallest Davies–Bouldin index is considered the best algorithm based on this criterion.
 The Dunn index aims to identify dense and wellseparated clusters. It is defined as the ratio between the minimal intercluster distance to maximal intracluster distance. For each cluster partition, the Dunn index can be calculated by the following formula:^{[45]}
 where d(i,j) represents the distance between clusters i and j, and d '(k) measures the intracluster distance of cluster k. The intercluster distance d(i,j) between two clusters may be any number of distance measures, such as the distance between the centroids of the clusters. Similarly, the intracluster distance d '(k) may be measured in a variety ways, such as the maximal distance between any pair of elements in cluster k. Since internal criterion seek clusters with high intracluster similarity and low intercluster similarity, algorithms that produce clusters with high Dunn index are more desirable.
 The silhouette coefficient contrasts the average distance to elements in the same cluster with the average distance to elements in other clusters. Objects with a high silhouette value are considered well clustered, objects with a low value may be outliers. This index works well with kmeans clustering, and is also used to determine the optimal number of clusters.
 Modularity (Q) is a standard measure of clustering quality that is equal to the difference between the density of the links in the clusters and the expected density.^{[46]}
Cluster tendency
To measure cluster tendency is to measure to what degree clusters exist in the data to be clustered, and may be performed as an initial test, before attempting clustering. One way to do this is to compare the data against random data. On average, random data should not have clusters.
 There are multiple formulations of the Hopkins statistic.^{[47]} A typical one is as follows.^{[48]} Let be the set of data points in dimensional space. Consider a random sample (without replacement) of data points with members . Also generate a set of uniformly randomly distributed data points. Now define two distance measures, to be the distance of from its nearest neighbor in X and to be the distance of from its nearest neighbor in X. We then define the Hopkins statistic as:
 With this definition, uniform random data should tend to have values near to 0.5, and clustered data should tend to have values nearer to 1.
 However, data containing just a single Gaussian will also score close to 1, as this statistic measures deviation from a uniform distribution, not multimodality, making this statistic largely useless in application (as real data never is remotely uniform).
Extrinsic or accuracy evaluation measures
In extrinsic (also known as external or accuracy) evaluation, clustering results are evaluated based on data that was not used for clustering, such as known class labels and external benchmarks. Such benchmarks consist of a set of preclassified items, and these sets are often created by (expert) humans. Thus, the benchmark sets can be thought of as a gold standard for evaluation.^{[38]} These types of evaluation methods measure how close the clustering is to the predetermined benchmark classes. However, it has recently been discussed whether this is adequate for real data, or only on synthetic data sets with a factual ground truth, since classes can contain internal structure, the attributes present may not allow separation of clusters or the classes may contain anomalies.^{[49]} Additionally, from a knowledge discovery point of view, the reproduction of known knowledge may not necessarily be the intended result.^{[49]} In the special scenario of constrained clustering, where meta information (such as class labels) is used already in the clustering process, the holdout of information for evaluation purposes is nontrivial.^{[50]}
A number of measures are adapted from variants used to evaluate classification tasks. In place of counting the number of times a class was correctly assigned to a single data point (known as true positives), such pair counting metrics assess whether each pair of data points that is truly in the same cluster is predicted to be in the same cluster.^{[38]}
As with intrinsic evaluation, several extrinsic evaluation measures exist,^{[44]}^{:125–129} for example:
 Purity: Purity is a measure of the extent to which clusters contain a single class.^{[43]} Its calculation can be thought of as follows: For each cluster, count the number of data points from the most common class in said cluster. Now take the sum over all clusters and divide by the total number of data points. Formally, given some set of clusters and some set of classes , both partitioning data points, purity can be defined as:
 Note that this measure doesn't penalize having many clusters. So for example, a purity score of 1 is possible by putting each data point in its own cluster. Also purity doesn't work well for imbalanced data: if a size 1000 dataset consists of two classes, one class contains 999 points and the other has only 1 point. No matter how bad a clustering algorithm performs, it will always give a very high purity value.
 Rand measure (William M. Rand 1971)^{[51]}
 The Rand index computes how similar the clusters (returned by the clustering algorithm) are to the benchmark classifications. One can also view the Rand index as a measure of the percentage of correct decisions made by the algorithm. It can be computed using the following formula:
 where is the number of true positives, is the number of true negatives, is the number of false positives, and is the number of false negatives. One issue with the Rand index is that false positives and false negatives are equally weighted. This may be an undesirable characteristic for some clustering applications. The Fmeasure addresses this concern,^{[citation needed]} as does the chancecorrected adjusted Rand index.
 The Fmeasure can be used to balance the contribution of false negatives by weighting recall through a parameter . Let precision and recall (both intrinsic evaluation measures in themselves) be defined as follows:
 where is the precision rate and is the recall rate. We can calculate the Fmeasure by using the following formula:^{[43]}
 Notice that when , . In other words, recall has no impact on the Fmeasure when , and increasing allocates an increasing amount of weight to recall in the final Fmeasure.
 Also note that is not taken into account and can vary from 0 upward without bound.
 The Jaccard index is used to quantify the similarity between two datasets. The Jaccard index takes on a value between 0 and 1. An index of 1 means that the two dataset are identical, and an index of 0 indicates that the datasets have no common elements. The Jaccard index is defined by the following formula:
 This is simply the number of unique elements common to both sets divided by the total number of unique elements in both sets.
 Also note that is not taken into account and can vary from 0 upward without bound.
 The Dice symmetric measure doubles the weight on while still ignoring :
 Fowlkes–Mallows index (E. B. Fowlkes & C. L. Mallows 1983)^{[52]}
 The Fowlkes–Mallows index computes the similarity between the clusters returned by the clustering algorithm and the benchmark classifications. The higher the value of the Fowlkes–Mallows index the more similar the clusters and the benchmark classifications are. It can be computed using the following formula:
 where is the number of true positives, is the number of false positives, and is the number of false negatives. The index is the geometric mean of the precision and recall and , and is thus also known as the Gmeasure, while the Fmeasure is their harmonic mean.^{[53]}^{[54]} Moreover, precision and recall are also known as Wallace's indices and .^{[55]} Chance normalized versions of recall, precision and Gmeasure correspond to Informedness, Markedness and Matthews Correlation and relate strongly to Kappa.^{[56]}
 The mutual information is an information theoretic measure of how much information is shared between a clustering and a groundtruth classification that can detect a nonlinear similarity between two clusterings. Normalized mutual information is a family of correctedforchance variants of this that has a reduced bias for varying cluster numbers.^{[38]}
 A confusion matrix can be used to quickly visualize the results of a classification (or clustering) algorithm. It shows how different a cluster is from the gold standard cluster.
Benchmarking frameworks and evaluation toolkits
There are several benchmarking frameworks and evaluation toolkits for the clustering algorithms, which typically include both synthetic and realworld groundtruth datasets and perform evaluations of multiple clustering algorithms by various extrinsic and intrinsic measures:
 Clubmark^{[42]} is an opensource benchmarking framework for the parallel evaluation of clustering algorithms. The framework is crossplatform and features dynamic load balancing to employ all available computational resources speeding up the execution and preventing swapping of the executing isolated applications (clustering algorithms and evaluating utilities) to guarantee fair measurement of the execution time. Clubmark includes realwork and synthetic graphs (networks) specified by the pairwise relations, multiple clustering algorithms and several extrinsic and intrinsic evaluation metrics applicable for both hard and soft clustering algorithms (evaluates clusters having multiple membership of elements). It includes few intrinsic metrics but has a modular architecture with pluggable external clustering algorithms and utilities for the evaluation and data pre/postprocessing. Additionally, the framework provides a readytouse, containerized execution environment for benchmarking with preinstalled dependencies for all algorithms and utilities since most of them are implemented in compilable languages (C++ and C) with dependencies on external libraries (Boost, Intel TBB, etc.).
 WebOCD^{[57]} is an opensource RESTful web framework for the development, evaluation and analysis of overlapping clustering algorithms working on graphs specified by the pairwise relations (community structure detection algorithms). It comprises several baseline algorithms, evaluation metrics and input data preprocessing utilities for the fast development of new clustering algorithms inside the framework. WebOCD is implemented in pure Java with specific interfaces tightly integrated into the framework. So, the existent implementations of the clustering algorithms and evaluation metrics can not be easily integrated into WebOCD without being reimplemented in Java.
 CoDAR^{[58]} is a framework for evaluation and recommendation of the clustering algorithms working on graphs specified by the pairwise relations. It provides a userfriendly interface and visualizations. The framework monitors the realtime structural changes of the input graph (network) during the clustering process, adopts multiple metrics and builds a rating model for algorithm performance evaluation. The evaluated algorithms are reimplemented in a common code base inside the framework, which is convenient for the uniform evaluation but limits the applicability of the framework to the existing algorithms.
 Circulo^{[59]} is a framework for the evaluation of the clustering algorithms working on graphs specified by the pairwise relations. It executes the algorithms on preliminary uploaded input graphs (networks) and then evaluates the results with multiple intrinsic and a few extrinsic measures. The framework executes the algorithms on the input datasets in parallel; however, the execution is performed without any isolation and no measures are taken to prevent mutual impact of the running processes. For example, if one of the processes consumes most of the available physical memory, others will be swapped by the operating system affecting the execution time. Multitreaded processes in Circulo also affect the execution time of the remaining running algorithms by occupying the shared computational resources.
 ParallelComMetric^{[60]} is an opensource toolkit for the parallel measurement of quality in nonoverlapping clusters on both distributed and shared memory machines. This toolkit performs exclusively the evaluation of several intrinsic and extrinsic quality measures without executing the clustering algorithms themselves.
Also, the evaluation of multiple clustering algorithms using various measures is performed in several surveys and studies on clustering algorithms but there is no evidence on whether the employed toolkits are publicly available ^{[61]}^{[62]}^{[63]}.
Applications
Biology, computational biology and bioinformatics
 Plant and animal ecology
 Cluster analysis is used to describe and to make spatial and temporal comparisons of communities (assemblages) of organisms in heterogeneous environments. It is also used in plant systematics to generate artificial phylogenies or clusters of organisms (individuals) at the species, genus or higher level that share a number of attributes.
 Transcriptomics
 Clustering is used to build groups of genes with related expression patterns (also known as coexpressed genes) as in HCS clustering algorithm. Often such groups contain functionally related proteins, such as enzymes for a specific pathway, or genes that are coregulated. High throughput experiments using expressed sequence tags (ESTs) or DNA microarrays can be a powerful tool for genome annotation—a general aspect of genomics.
 Sequence analysis
 Sequence clustering is used to group homologous sequences into gene families. This is a very important concept in bioinformatics, and evolutionary biology in general. See evolution by gene duplication.
 Highthroughput genotyping platforms
 Clustering algorithms are used to automatically assign genotypes.
 Human genetic clustering
 The similarity of genetic data is used in clustering to infer population structures.
Medicine
 Medical imaging
 On PET scans, cluster analysis can be used to differentiate between different types of tissue in a threedimensional image for many different purposes.^{[64]}
 Analysis of antimicrobial activity
 Cluster analysis can be used to analyse patterns of antibiotic resistance, to classify antimicrobial compounds according to their mechanism of action, to classify antibiotics according to their antibacterial activity.
 IMRT segmentation
 Clustering can be used to divide a fluence map into distinct regions for conversion into deliverable fields in MLCbased Radiation Therapy.
Business and marketing
 Market research
 Cluster analysis is widely used in market research when working with multivariate data from surveys and test panels. Market researchers use cluster analysis to partition the general population of consumers into market segments and to better understand the relationships between different groups of consumers/potential customers, and for use in market segmentation, product positioning, new product development and selecting test markets.
 Grouping of shopping items
 Clustering can be used to group all the shopping items available on the web into a set of unique products. For example, all the items on eBay can be grouped into unique products (eBay does not have the concept of a SKU).
World wide web
 Social network analysis
 In the study of social networks, clustering may be used to recognize communities within large groups of people.
 Search result grouping
 In the process of intelligent grouping of the files and websites, clustering may be used to create a more relevant set of search results compared to normal search engines like Google^{[citation needed]}. There are currently a number of webbased clustering tools such as Clusty. It also may be used to return a more comprehensive set of results in cases where a search term could refer to vastly different things. Each distinct use of the term corresponds to a unique cluster of results, allowing a ranking algorithm to return comprehensive results by picking the top result from each cluster.^{[65]}
 Slippy map optimization
 Flickr's map of photos and other map sites use clustering to reduce the number of markers on a map. This makes it both faster and reduces the amount of visual clutter.
Computer science
 Software evolution
 Clustering is useful in software evolution as it helps to reduce legacy properties in code by reforming functionality that has become dispersed. It is a form of restructuring and hence is a way of direct preventative maintenance.
 Image segmentation
 Clustering can be used to divide a digital image into distinct regions for border detection or object recognition.^{[66]}
 Evolutionary algorithms
 Clustering may be used to identify different niches within the population of an evolutionary algorithm so that reproductive opportunity can be distributed more evenly amongst the evolving species or subspecies.
 Recommender systems
 Recommender systems are designed to recommend new items based on a user's tastes. They sometimes use clustering algorithms to predict a user's preferences based on the preferences of other users in the user's cluster.
 Markov chain Monte Carlo methods
 Clustering is often utilized to locate and characterize extrema in the target distribution.
 Anomaly detection
 Anomalies/outliers are typically – be it explicitly or implicitly – defined with respect to clustering structure in data.
 Natural language processing
 Clustering can be used to resolve lexical ambiguity.^{[65]}
Social science
 Crime analysis
 Cluster analysis can be used to identify areas where there are greater incidences of particular types of crime. By identifying these distinct areas or "hot spots" where a similar crime has happened over a period of time, it is possible to manage law enforcement resources more effectively.
 Educational data mining
 Cluster analysis is for example used to identify groups of schools or students with similar properties.
 Typologies
 From poll data, projects such as those undertaken by the Pew Research Center use cluster analysis to discern typologies of opinions, habits, and demographics that may be useful in politics and marketing.
Others
 Field robotics
 Clustering algorithms are used for robotic situational awareness to track objects and detect outliers in sensor data.^{[67]}
 Mathematical chemistry
 To find structural similarity, etc., for example, 3000 chemical compounds were clustered in the space of 90 topological indices.^{[68]}
 Climatology
 To find weather regimes or preferred sea level pressure atmospheric patterns.^{[69]}
 Petroleum geology
 Cluster analysis is used to reconstruct missing bottom hole core data or missing log curves in order to evaluate reservoir properties.
 Physical geography
 The clustering of chemical properties in different sample locations.
See also
Specialized types of cluster analysis
 Automatic Clustering Algorithms
 Balanced clustering
 Clustering highdimensional data
 Conceptual clustering
 Consensus clustering
 Constrained clustering
 Data stream clustering
 HCS clustering
 Sequence clustering
 Spectral clustering
Techniques used in cluster analysis
 Artificial neural network (ANN)
 Nearest neighbor search
 Neighbourhood components analysis
 Latent class analysis
 Affinity propagation
Data projection and preprocessing
Issues
 Curse of dimensionality
 Determining the number of clusters in a data set
 Degeneracy of the optimization function of the clustering algorithm^{[70]} yielding multiple distinct clustering results having the same or similar values of the optimization function and being close to the global maximum.
Other
References
 ^ Bailey, Ken (1994). "Numerical Taxonomy and Cluster Analysis". Typologies and Taxonomies. p. 34. ISBN 9780803952591.
 ^ Tryon, Robert C. (1939). Cluster Analysis: Correlation Profile and Orthometric (factor) Analysis for the Isolation of Unities in Mind and Personality. Edwards Brothers.
 ^ Cattell, R. B. (1943). "The description of personality: Basic traits resolved into clusters". Journal of Abnormal and Social Psychology. 38 (4): 476–506. doi:10.1037/h0054116.
 ^ Murray, Andrew W.; Stanislas Leibler; Hopfield, John J.; Hartwell, Leland H. (19991202). "From molecular to modular cell biology". Nature. 402 (6761supp): C47–C52. doi:10.1038/35011540. ISSN 14764687.
 ^ ^{a} ^{b} ^{c} EstivillCastro, Vladimir (20 June 2002). "Why so many clustering algorithms – A Position Paper". ACM SIGKDD Explorations Newsletter. 4 (1): 65–75. doi:10.1145/568574.568575.
 ^ Gregory, Steve (20110210). "Fuzzy overlapping communities in networks". Journal of Statistical Mechanics: Theory and Experiment. 2011 (02): P02017. doi:10.1088/17425468/2011/02/p02017. ISSN 17425468.
 ^ Xu, Dongkuan; Tian, Yingjie (20150601). "A Comprehensive Survey of Clustering Algorithms". Annals of Data Science. 2 (2): 165–193. doi:10.1007/s4074501500401. ISSN 21985812.
 ^ Fahad, A.; Alshatri, N.; Tari, Z.; Alamri, A.; Khalil, I.; Zomaya, A. Y.; Foufou, S.; Bouras, A. (September 2014). "A Survey of Clustering Algorithms for Big Data: Taxonomy and Empirical Analysis". IEEE Transactions on Emerging Topics in Computing. 2 (3): 267–279. doi:10.1109/TETC.2014.2330519. ISSN 21686750.
 ^ Blondel, Vincent D.; Guillaume, JeanLoup; Lambiotte, Renaud; Lefebvre, Etienne (October 2008). "Fast unfolding of communities in large networks". Journal of Statistical Mechanics: Theory and Experiment. 2008 (10): P10008. doi:10.1088/17425468/2008/10/P10008. ISSN 17425468.
 ^ Min, E.; Guo, X.; Liu, Q.; Zhang, G.; Cui, J.; Long, J. (2018). "A Survey of Clustering With Deep Learning: From the Perspective of Network Architecture". IEEE Access. 6: 39501–39514. doi:10.1109/ACCESS.2018.2855437. ISSN 21693536.
 ^ Wang, Fei; Ding, Chris; Li, Tao (2009). Integrated KL (Kmeans Laplacian) Clustering: A New Clustering Approach by Combining Attribute Data and Pairwise Relations.
 ^ Yang, J.; McAuley, J.; Leskovec, J. (December 2013). "Community Detection in Networks with Node Attributes". 2013 IEEE 13th International Conference on Data Mining: 1151–1156. doi:10.1109/ICDM.2013.167.
 ^ Lloyd, S. (1982). "Least squares quantization in PCM". IEEE Transactions on Information Theory. 28 (2): 129–137. doi:10.1109/TIT.1982.1056489.
 ^ Everitt, Brian (2011). Cluster analysis. Chichester, West Sussex, U.K: Wiley. ISBN 9780470749913.
 ^ Sibson, R. (1973). "SLINK: an optimally efficient algorithm for the singlelink cluster method" (PDF). The Computer Journal. British Computer Society. 16 (1): 30–34. doi:10.1093/comjnl/16.1.30.
 ^ Defays, D. (1977). "An efficient algorithm for a complete link method". The Computer Journal. British Computer Society. 20 (4): 364–366. doi:10.1093/comjnl/20.4.364.
 ^ Kriegel, HansPeter; Kröger, Peer; Sander, Jörg; Zimek, Arthur (2011). "Densitybased Clustering". WIREs Data Mining and Knowledge Discovery. 1 (3): 231–240. doi:10.1002/widm.30.
 ^ Microsoft academic search: most cited data mining articles Archived 20100421 at the Wayback Machine: DBSCAN is on rank 24, when accessed on: 4/18/2010
 ^ Ester, Martin; Kriegel, HansPeter; Sander, Jörg; Xu, Xiaowei (1996). "A densitybased algorithm for discovering clusters in large spatial databases with noise". In Simoudis, Evangelos; Han, Jiawei; Fayyad, Usama M. Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD96). AAAI Press. pp. 226–231. CiteSeerX 10.1.1.71.1980. ISBN 1577350049.
 ^ Ankerst, Mihael; Breunig, Markus M.; Kriegel, HansPeter; Sander, Jörg (1999). "OPTICS: Ordering Points To Identify the Clustering Structure". ACM SIGMOD international conference on Management of data. ACM Press. pp. 49–60. CiteSeerX 10.1.1.129.6542.
 ^ ^{a} ^{b} Achtert, E.; Böhm, C.; Kröger, P. (2006). "DeLiClu: Boosting Robustness, Completeness, Usability, and Efficiency of Hierarchical Clustering by a Closest Pair Ranking". LNCS: Advances in Knowledge Discovery and Data Mining. Lecture Notes in Computer Science. 3918: 119–128. doi:10.1007/11731139_16. ISBN 9783540332060.
 ^ Sculley, D. (2010). Webscale kmeans clustering. Proc. 19th WWW.
 ^ Huang, Z. (1998). "Extensions to the kmeans algorithm for clustering large data sets with categorical values". Data Mining and Knowledge Discovery. 2: 283–304.
 ^ R. Ng and J. Han. "Efficient and effective clustering method for spatial data mining". In: Proceedings of the 20th VLDB Conference, pages 144–155, Santiago, Chile, 1994.
 ^ Tian Zhang, Raghu Ramakrishnan, Miron Livny. "An Efficient Data Clustering Method for Very Large Databases." In: Proc. Int'l Conf. on Management of Data, ACM SIGMOD, pp. 103–114.
 ^ Kriegel, HansPeter; Kröger, Peer; Zimek, Arthur (July 2012). "Subspace clustering". Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery. 2 (4): 351–364. doi:10.1002/widm.1057.
 ^ Agrawal, R.; Gehrke, J.; Gunopulos, D.; Raghavan, P. (2005). "Automatic Subspace Clustering of High Dimensional Data". Data Mining and Knowledge Discovery. 11: 5–33. doi:10.1007/s1061800513961.
 ^ Karin Kailing, HansPeter Kriegel and Peer Kröger. DensityConnected Subspace Clustering for HighDimensional Data. In: Proc. SIAM Int. Conf. on Data Mining (SDM'04), pp. 246–257, 2004.
 ^ Achtert, E.; Böhm, C.; Kriegel, H.P.; Kröger, P.; MüllerGorman, I.; Zimek, A. (2006). "Finding Hierarchies of Subspace Clusters". LNCS: Knowledge Discovery in Databases: PKDD 2006. Lecture Notes in Computer Science. 4213: 446–453. doi:10.1007/11871637_42. ISBN 9783540453741.
 ^ Achtert, E.; Böhm, C.; Kriegel, H. P.; Kröger, P.; MüllerGorman, I.; Zimek, A. (2007). "Detection and Visualization of Subspace Cluster Hierarchies". LNCS: Advances in Databases: Concepts, Systems and Applications. Lecture Notes in Computer Science. 4443: 152–163. doi:10.1007/9783540717034_15. ISBN 9783540717027.
 ^ Achtert, E.; Böhm, C.; Kröger, P.; Zimek, A. (2006). "Mining Hierarchies of Correlation Clusters". Proc. 18th International Conference on Scientific and Statistical Database Management (SSDBM): 119–128. doi:10.1109/SSDBM.2006.35. ISBN 0769525903.
 ^ Böhm, C.; Kailing, K.; Kröger, P.; Zimek, A. (2004). "Computing Clusters of Correlation Connected objects". Proceedings of the 2004 ACM SIGMOD international conference on Management of data  SIGMOD '04. p. 455. doi:10.1145/1007568.1007620. ISBN 1581138598.
 ^ Achtert, E.; Bohm, C.; Kriegel, H. P.; Kröger, P.; Zimek, A. (2007). "On Exploring Complex Relationships of Correlation Clusters". 19th International Conference on Scientific and Statistical Database Management (SSDBM 2007). p. 7. doi:10.1109/SSDBM.2007.21. ISBN 0769528686.
 ^ Meilă, Marina (2003). "Comparing Clusterings by the Variation of Information". Learning Theory and Kernel Machines. Lecture Notes in Computer Science. 2777: 173–187. doi:10.1007/9783540451679_14. ISBN 9783540407201.
 ^ Kraskov, Alexander; Stögbauer, Harald; Andrzejak, Ralph G.; Grassberger, Peter (1 December 2003). "Hierarchical Clustering Based on Mutual Information". arXiv:qbio/0311039.
 ^ Auffarth, B. (July 18–23, 2010). "Clustering by a Genetic Algorithm with Biased Mutation Operator". Wcci Cec. IEEE. CiteSeerX 10.1.1.170.869.
 ^ Frey, B. J.; Dueck, D. (2007). "Clustering by Passing Messages Between Data Points". Science. 315 (5814): 972–976. Bibcode:2007Sci...315..972F. doi:10.1126/science.1136800. PMID 17218491.
 ^ ^{a} ^{b} ^{c} ^{d} Pfitzner, Darius; Leibbrandt, Richard; Powers, David (2009). "Characterization and evaluation of similarity measures for pairs of clusterings". Knowledge and Information Systems. Springer. 19: 361–394. doi:10.1007/s1011500801506.
 ^ Amigó, Enrique; Gonzalo, Julio; Artiles, Javier; Verdejo, Felisa (20090801). "A comparison of extrinsic clustering evaluation metrics based on formal constraints". Information Retrieval. 12 (4): 461–486. doi:10.1007/s1079100890668. ISSN 15737659.
 ^ ^{a} ^{b} ^{c} Feldman, Ronen; Sanger, James (20070101). The Text Mining Handbook: Advanced Approaches in Analyzing Unstructured Data. Cambridge Univ. Press. ISBN 0521836573. OCLC 915286380.
 ^ Weiss, Sholom M.; Indurkhya, Nitin; Zhang, Tong; Damerau, Fred J. (2005). Text Mining: Predictive Methods for Analyzing Unstructured Information. Springer. ISBN 0387954333. OCLC 803401334.
 ^ ^{a} ^{b} Lutov, A., Khayati, M., & CudréMauroux, P. (2018). Clubmark: a Parallel Isolation Framework for Benchmarking and Profiling Clustering Algorithms on NUMA Architectures. In 2018 IEEE International Conference on Data Mining Workshops (ICDMW) (pp. 1481–1486). https://doi.org/10.1109/ICDMW.2018.00212
 ^ ^{a} ^{b} ^{c} Manning, Christopher D.; Raghavan, Prabhakar; Schütze, Hinrich. Introduction to Information Retrieval. Cambridge University Press. ISBN 9780521865715.
 ^ ^{a} ^{b} Knowledge Discovery in Databases – Part III – Clustering (PDF), Heidelberg University, 2017
 ^ Dunn, J. (1974). "Well separated clusters and optimal fuzzy partitions". Journal of Cybernetics. 4: 95–104. doi:10.1080/01969727408546059.
 ^ Newman, M. E. J.; Girvan, M. (20040226). "Finding and evaluating community structure in networks". Physical Review E. 69 (2): 026113. doi:10.1103/PhysRevE.69.026113.
 ^ Hopkins, Brian; Skellam, John Gordon (1954). "A new method for determining the type of distribution of plant individuals". Annals of Botany. Annals Botany Co. 18 (2): 213–227. doi:10.1093/oxfordjournals.aob.a083391.
 ^ Banerjee, A. (2004). "Validating clusters using the Hopkins statistic". IEEE International Conference on Fuzzy Systems. 1: 149–153. doi:10.1109/FUZZY.2004.1375706. ISBN 0780383532.
 ^ ^{a} ^{b} Färber, Ines; Günnemann, Stephan; Kriegel, HansPeter; Kröger, Peer; Müller, Emmanuel; Schubert, Erich; Seidl, Thomas; Zimek, Arthur (2010). "On Using ClassLabels in Evaluation of Clusterings" (PDF). In Fern, Xiaoli Z.; Davidson, Ian; Dy, Jennifer. MultiClust: Discovering, Summarizing, and Using Multiple Clusterings. ACM SIGKDD.
 ^ Pourrajabi, M.; Moulavi, D.; Campello, R. J. G. B.; Zimek, A.; Sander, J.; Goebel, R. (2014). "Model Selection for SemiSupervised Clustering". Proceedings of the 17th International Conference on Extending Database Technology (EDBT),. pp. 331–342. doi:10.5441/002/edbt.2014.31.
 ^ Rand, W. M. (1971). "Objective criteria for the evaluation of clustering methods". Journal of the American Statistical Association. American Statistical Association. 66 (336): 846–850. doi:10.2307/2284239. JSTOR 2284239.
 ^ E. B. Fowlkes & C. L. Mallows (1983), "A Method for Comparing Two Hierarchical Clusterings", Journal of the American Statistical Association 78, 553–569.
 ^ Powers, David (2003). Recall and Precision versus the Bookmaker. International Conference on Cognitive Science. pp. 529–534.
 ^ Arabie, P. "Comparing partitions". Journal of Classification. 2 (1): 1985.
 ^ Wallace, D. L. (1983). "Comment". Journal of the American Statistical Association. 78 (383): 569–579. doi:10.1080/01621459.1983.10478009.
 ^ Powers, David (2012). The Problem with Kappa. European Chapter of the Association for Computational Linguistics. pp. 345–355.
 ^ Shahriari, Mohsen; Krott, Sebastian; Klamma, Ralf (2015). "WebOCD". Proceedings of the 15th International Conference on Knowledge Technologies and Datadriven Business  iKNOW '15. New York, New York, USA: ACM Press. doi:10.1145/2809563.2809593. ISBN 9781450337212.
 ^ Ying, Xiang; Wang, Chaokun; Wang, Meng; Yu, Jeffrey Xu; Zhang, Jun (2016). "CoDAR". Proceedings of the 2016 International Conference on Management of Data  SIGMOD '16. New York, New York, USA: ACM Press. doi:10.1145/2882903.2899386. ISBN 9781450335317.
 ^ P. Mazzuca and Y. T, “Circulo: A Community Detection Evaluation Framework,” Feb. 2015. [Online]. Available: https://www.lab41.org/circuloacommunitydetectionevaluationframework/
 ^ Chen, Mingming; Liu, Sisi; Szymanski, Boleslaw K. (201409). "Parallel Toolkit for Measuring the Quality of Network Community Structure". 2014 European Network Intelligence Conference. IEEE. doi:10.1109/enic.2014.26. ISBN 9781479969142. Check date values in:
date=
(help)  ^ Harenberg, Steve; Bello, Gonzalo; Gjeltema, L.; Ranshous, Stephen; Harlalka, Jitendra; Seay, Ramona; Padmanabhan, Kanchana; Samatova, Nagiza (20140722). "Community detection in largescale networks: a survey and empirical evaluation". Wiley Interdisciplinary Reviews: Computational Statistics. 6 (6): 426–439. doi:10.1002/wics.1319. ISSN 19395108.
 ^ Yang, Jaewon; Leskovec, Jure (2012). "Defining and evaluating network communities based on groundtruth". Proceedings of the ACM SIGKDD Workshop on Mining Data Semantics  MDS '12. New York, New York, USA: ACM Press. doi:10.1145/2350190.2350193. ISBN 9781450315463.
 ^ Guillaume, Hascoët, Mountaz Artignan,. Evaluation of Clustering Algorithms: a methodology and a case study. OCLC 892750656.
 ^ Filipovych, Roman; Resnick, Susan M.; Davatzikos, Christos (2011). "Semisupervised Cluster Analysis of Imaging Data". NeuroImage. 54 (3): 2185–2197. doi:10.1016/j.neuroimage.2010.09.074. PMC 3008313. PMID 20933091.
 ^ ^{a} ^{b} Antonio Di Marco  Roberto Navigili,"Clustering and Diversifying Web Search Results with Graph Based Word Sense Induction", 2013
 ^ Bewley, A., & Upcroft, B. (2013). Advantages of Exploiting Projection Structure for Segmenting Dense 3D Point Clouds. In Australian Conference on Robotics and Automation [1]
 ^ Bewley, A.; et al. "Realtime volume estimation of a dragline payload". IEEE International Conference on Robotics and Automation. 2011: 1571–1576.
 ^ Basak, S.C.; Magnuson, V.R.; Niemi, C.J.; Regal, R.R. (1988). "Determining Structural Similarity of Chemicals Using Graph Theoretic Indices". Discr. Appl. Math. 19: 17–44. doi:10.1016/0166218x(88)900042.
 ^ Huth, R.; et al. (2008). "Classifications of Atmospheric Circulation Patterns: Recent Advances and Applications". Ann. N.Y. Acad. Sci. 1146: 105–152. Bibcode:2008NYASA1146..105H. doi:10.1196/annals.1446.019.
 ^ Good, Benjamin H.; de Montjoye, YvesAlexandre; Clauset, Aaron (20100415). "Performance of modularity maximization in practical contexts". Physical Review E. 81 (4). doi:10.1103/physreve.81.046106. ISSN 15393755.