Requirements
The main requirements that a clustering algorithm should satisfy are:
scalability;
dealing with different types of attributes;
discovering clusters with arbitrary shape;
minimal requirements for domain knowledge to determine input parameters;
ability to deal with noise and outliers;
insensitivity to order of input records;
high dimensionality;
interpretability and usability.
S. Chu, J. Roddick, and A. Australia. In Data Mining II-Proceedings of Second International Conference on Data Mining Methods and Databases, page 515--523. (2000)
R. Almeida, and V. Almeida. WWW '04: Proceedings of the 13th international conference on World Wide Web, page 413--421. New York, NY, USA, ACM Press, (2004)