Suppose I have M observation vectors, offline, $y_t$, $ t =1 ... M$, and each observation is $n$ dimensional. I then cluster these observations into $k$ clusters. For computing the clustering statistic of each observation though, I use ALL of its components, i.e. all $n$ dimensions of it.

Now a new stream of data comes in. I want to be able to assign this stream to one of the $k$ clusters. The complication is that now I want to do this classification before observing all $n$ components of it. In other words, having observed $i < n$ components of the new observation, I need to assign it to a group.

Given that the dimension of new observation is smaller than the offline ones, how would one go about the classification?

  • $\begingroup$ Will the rest of the dimensions become available later? Will you need to continually update & reclassify the observations? When you have more data later, will you want to revisit the original cluster solution & perhaps do a new (hopefully better) clustering? $\endgroup$ Aug 31, 2015 at 17:06
  • $\begingroup$ @gung Yes to all, actually. The rest would become available later, and reclassification would be desirable. However, the importance of classification is when i has many( 10 or more) missing data points $\endgroup$
    – Alex
    Aug 31, 2015 at 17:12
  • $\begingroup$ Do the coordinates fill in some fixed order? And do you believe the earlier coordinates have some predictive power over the later coordinates? $\endgroup$ Sep 3, 2015 at 19:50

1 Answer 1


The most flexible approach to me seems like a mixture model. In many cases it is possible to even train/update such a model on your incomplete data. Once trained you would be able to compute:

$$ P(Z=z | X_1=x_1, \dots, X_n=x_n), $$

Where "z"s are labels. Once this is possible conditioning on limited information is possible. This type of model would give you more flexibility than for example a distance based clustering algorithm like hierarchical or kmeans.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.