I have an incremental online clustering algorithm which need 4 parameters that should be specified by the user before execution. The algorithm will gives "good results" if "a good parameter values" are chosen, but there is no way to know beforehand what are the best matching parameter values. We can for example perform many executions and evaluate the results after each execution until we find the optimal parameter values. However, if we change the dataset that the algorithm process, we need to determine again what are the optimal parameter values for that dataset. Moreover, the online algorithm is supposed to process a continuously arriving and evolving data stream, i.e. we don't have all data beforehand.
My problem is not the online clustering algorithm itself; I just wonder if there is any solutions/methods to automatically adapt the parameter values during the execution ? How is it possible to use an approximation algorithm to adapt the parameter values in my case ? Which approximate algorithm can I use and how to adapt it (if necessary) to this problem ? Any idea is welcome.