A method for partitioning a plurality of items into groups of similar items, the plurality of items corresponding to a selection history by at least one third party, the method comprising the steps of:
- partitioning the selection history into k clusters, k having an initial value of at least two;
- identifying at least one mean item for each of the k clusters;
- assigning each of the plurality of items to one of the k clusters based on a distance metric;
- determining a measure of cluster compactness for at least one of the k clusters;
- and
- incrementing the value of k if a predetermined criteria is not met by the measure of cluster compactness and then repeating the steps.