1. An apparatus configured to classifying user traffic flows carried by a network, each user traffic flow being associated with one of a plurality of users, the apparatus comprising at least one processor and at least one memory, wherein the at least one memory comprises at least one set of instructions executable by the at least one processor, the at least one set of instructions comprising: a classification program configured to classify each user traffic flow into one of a plurality of traffic classes; a pattern generation program configured to generate a user pattern for each user, each user pattern comprising the traffic class of each user traffic flow associated with said user; a grouping program configured to use a k-means algorithm as a clustering algorithm to group the plurality of users into one or more user groups based on the user pattern associated with each user, and to identify a user pattern within each user group that is representative of all user patterns within the user group, wherein the representative user pattern of a user group is identified as a centroid of the user group, as determined by the k-means algorithm; and an optimized classification program configured to identify a user associated with a subsequent user traffic flow, determining the user group to which the user belongs, retrieving the representative user pattern of said user group, and using the traffic classes included in the representative user pattern to classify the subsequent user traffic flow.