Based on a general definition of a cluster and the quality of a clustering result, a new method for evaluating existing clustering algorithms, or undertaking clustering, capable of predicting the number and type of clusters and outliers present in a data set, regardless of the complexity of the distribution of points, is presented. This algorithm, referred to as iterative label spreading, can recognize the characteristics expected of a successful clustering result before any clustering algorithm is applied, providing a type of hyper-parameter optimization for clustering. The efficacy of the algorithm, and the assessment of clustering result, are both confirmed using large benchmark two dimensional synthetic data sets, and small multidimensional data describing a set of silver nanoparticles. It is shown that the method is ideal for studying noisy data with high dimensionality and high variance, typical of data captured in materials and nanoscience.