thouska / spotpy

A Statistical Parameter Optimization Tool
https://spotpy.readthedocs.io/en/latest/
MIT License
254 stars 152 forks source link

Clarification on Multi-Objective Functions #233

Closed GateauXD closed 5 years ago

GateauXD commented 5 years ago

When running multi-objective functions in my calibration it seemed that out of the list of objective values I returned the maximum obj function would be the max of the list.

Objective Value: [0.9512687665203923, 0.47516689592356665, -9.440140327861823, -5.7309122832672985, -0.8850039981891837]
2 of 25, min objf=0.450829, max objf=0.951269, time remaining: 00:11:34

I was wondering if the multi-objective function maximizes all parameters?

I am using LHS and nashsutcliffe.

thouska commented 5 years ago

Hi GateauXD, thanks for you message. The printing of spotpy returns the maxmimum und minum found objective function value. If you return several/multi objective functions, it is just looking at the first one of the list, so in your case 0.951268766. If you want to do a multi-objective calibration, you can use an additional objective function which combines all your multi-objetive function, e.g. the mean(objective values). Just for the record: If you are using LHS, there is no maximization or optimization happening during the sampling, it is just scanning the whole parameter space. You can select later the best performing parameter sets. The implemented PA-DDS algorithm would optimize your parameter space during the sampling.

GateauXD commented 5 years ago

That makes sense. Thank you for the reply