1. A method of processing a continuously progressing data stream, comprising the steps of: maintaining a cluster structure, the cluster structure representing one or more clusters in the continuously progressing data stream, wherein the cluster structure comprises one or more data points in a multidimensional space, further wherein the one or more data points of the cluster structure fade as the continuously progressing data stream progresses; determining a set of projected dimensions for each of the one or more clusters using the one or more data points in the cluster structure, a given set of projected dimensions of a cluster being associated with a subset of a total number of dimensions of the continuously progressing data stream and the given set of projected dimensions being represented by a d-dimensional bit vector such that dimensions of the d dimensions in the bit vector that are present in the cluster are assigned one value and dimensions of the d dimensions in the bit vector that are not in the cluster are assigned another value, the given set of projected dimensions being continuously redefined to minimize a cluster radius, wherein redefining the set of projected dimensions comprises varying the values of the bit vector based on which dimensions are present and not present in the cluster as the data stream progresses and the one or more data points fade; and determining assignments for incoming data points of the continuously progressing data stream to the one or more clusters using distances associated with each set of projected dimensions for each of the one or more clusters; wherein one or more of the steps of maintaining the cluster structure, determining the set of projected dimensions, and determining the assignments are implemented as one or more software components that are loaded from a memory and executed by a processor.