I am trying to implement a functionality which can auto compute the optimal number of clusters for a given data. I tried using Average Silhouette Width, Dunn Index, Davis and Bouldin index etc. But all these indices require that I first cluster data and then compute these. But for clustering the data I'll have to use a clustering algorithm. I don't want to do that first. I was wondering if there are some data properties or some indices - like mentioned above - which can be used for my purpose to estimate the number of clusters in data, but which do not require to use of any clustering algorithm. Is it possible to find optimal number of clusters for a given data without or prior using any clustering algorithm?
So you want to compute the optimal number of clusters, but not the actual clusters? Why?
Most likely, this is not possible (but rather, you would need to enumerate all possible subsets, and that does mean clustering the data set).
But the number of clusters is not very meaningful without any restriction on what a "proper" cluster is. But then, again, you are actually finding clusters.
Internal evaluation metrics - which in my opinion are heavily overrated except on toy problems - themselves can be seen as "clustering algorithms" on their own, because they imply an optimal way of partitioning the data. It is just that we don't know any efficient algorithm to find that optimum, so we use e.g. k-means to "guess" possible solutions, as we don't want to try all possible partitions.