1. A computer implemented method for clustering customers, comprising: receiving, with a processing device, a source 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 an attribute value; pre-processing the source set of customer records to generate a pre-processed set of customer records; and executing, with the processing device, a clustering algorithm on the pre-processed set of customer records to divide the pre-processed set of customer records into a pre-defined number of clusters, wherein the pre-processing comprises: determining the type of the customer represented by each record in the source set of customer records; using a type attribute to represent the type of the customer in the corresponding customer record; normalizing data attribute values and type attribute values; and weighting the data attribute values and the type attribute values respectively to obtain weighted attribute values of the data attribute and weighted attribute values of the type attribute.