1. A computer-implemented method for clustering customers, comprising: receiving a set of customer records, wherein each customer record in the set of customer records represents one customer, each customer record includes at least one data attribute, and each data attribute has a data attribute value; pre-processing the set of customer records to generate a pre-processed set of customer records; wherein the pre-processing of the set of customer records comprises: determining the type of the customer represented by each record in the set of customer records; using a type attribute to represent the type of the customer in the corresponding customer record, wherein the type attribute indicates whether the corresponding customer is a seed customer or a non-seed customer; normalizing the data attribute values and the type attribute values; and weighting the data attribute values and the type attribute values, wherein the weighting comprises multiplying the data attribute values by a dispersion weighting factor and multiplying the type attribute values by a purity weighting factor; executing, by a computer processor, a clustering algorithm on the pre-processed set of customer records to cluster the pre-processed set of customer records into a pre-defined number of clusters, wherein each of the clusters comprises two or more customer records representing two or more customers, and wherein each pre-processed customer record in the pre-processed set of customer records being clustered comprises at least a normalized and weighted data attribute and a normalized and weighted type attribute; wherein the dispersion weighting factor used to weight the data attribute values and the purity weighting factor used to weight the type attribute values are adjustable to affect the dispersion and purity of a clustering result of the clustering algorithm applied to the set of customer records.