Is there an implemented algorithm (with python/R or java in preference) that can classify incoming data from an unknown generator with absolutely no prior knowledge or assumption.

For example:

Let G be a generator of 2d vectors that generate one vector in each second.

What we know, and nothing else, is that this vectors are separable into clusters in space (euclidean distance).

Question: How can I classify my data in real time so that at each iteration, the algorithm propose clusters?

  • 1
    $\begingroup$ Are you asking about cluster analyses? To classify, you have to know what the classes are. $\endgroup$ May 27, 2015 at 20:46
  • $\begingroup$ Thanks for the comment, I know about clustering, The problem here that I don't have the number of clusters. $\endgroup$
    – farhawa
    May 27, 2015 at 20:49
  • $\begingroup$ So is it that you want to cluster data where you don't know the right number of clusters in advance? $\endgroup$ May 27, 2015 at 21:04
  • $\begingroup$ @gung yes that's my problem $\endgroup$
    – farhawa
    May 27, 2015 at 21:07
  • $\begingroup$ Current voting suggests this question may be too vague and too broad to be answerable. Perhaps you could edit the post to provide more information about the data and the purposes of the classification. $\endgroup$
    – whuber
    May 27, 2015 at 22:21

1 Answer 1


DBSCAN seems to suit your purpose, it doesnt need a fixed number of clusters and will surely find correct clusters in the separable clusters case. If instances where not random but actually drifting between time instances (like moving points) i would give incremental DBSCAN a try.

DBSCAN is available in either of the languages you mentioned.

Regarding the temporal "dimension" of the problem you accumulate instances and after a certain criteria is met (minimum number of instances, time window size) you cluster the accumulated observations and repeat.

  • $\begingroup$ The problem is that DBSCAN don't works with clusters with different density (it's a very strong assumption in my case) $\endgroup$
    – farhawa
    May 28, 2015 at 9:46
  • $\begingroup$ It will work for the specific case of clusters being well separated. Tough if dbscan really doesn't work you may try OPTICS. $\endgroup$
    – Ramalho
    May 28, 2015 at 16:12

Your Answer

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

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