Maybe the suitable way is try-and-error?

What I'm interesting is that my datasets is very huge and I can't try number of cluster from 1 to N if I have N samples
That cost too much time for me.

Maybe I should define the initial number of cluster based on execution time?

Then analyze the next step is increase/decrease the number of cluster?

thx