I use the DCC algorithm to cluster some data. The whole algorithm is available here, but shortly it is:
- construct mkNN graph of the data points (the connected components of it are the clusters).
- pretrain an Autoencoder for data dimension-reduction.
- train the Autoencoder witn it's objective wih another objective of the clustering which tries to reduce the distance between the dimension-reducted data points.
- the final connected components of the becoming close points(if close enough (by a threshhold) they remain connected, if they moved far from each other - the edge is gone and some others appear and e.t.c) are the clusters.
Could you possibly guess why am I getting the most of the data in the first 0-index cluster (consistently, with tuning all of the hyperparameters) ? The data has good potential for a very good clustering as I can see from the tSNE visualization of the output. But the clustering isn't good. I thought maybe to enlarge the k parameter of the mKNN graph construction, but it didn't work for that, just reduces the whole amount of clusters, but the data samples continue to clash into one cluster.
Any suggestion and theoretical discussion is welcomed.