EthanJamesLew / AutoKoopman

AutoKoopman - automated Koopman operator methods for data-driven dynamical systems analysis and control.
GNU General Public License v3.0
53 stars 10 forks source link

CRITICAL: infer sampling period when sampling period is not provided #41

Closed EthanJamesLew closed 1 year ago

EthanJamesLew commented 1 year ago

@Abdu-Hekal @KochdumperNiklas gents, this has been ruining the benchmarks real data script. When the sampling period was not provided, auto_koopman was not choosing a good (valid) sampling period. Also, bopt now uses the loglinear attributes, so it's better overall. Please merge/rebase on benchmarks branch.

Also, is mean_absolute_percentage_error really what we want? I see the documentation says

>>> # the value when some element of the y_true is zero is arbitrarily high because
>>> # of the division by epsilon
>>> y_true = [1., 0., 2.4, 7.]
>>> y_pred = [1.2, 0.1, 2.4, 8.]
>>> mean_absolute_percentage_error(y_true, y_pred)
112589990684262.48
Abdu-Hekal commented 1 year ago

@EthanJamesLew Thank you for the fixes! I will merge into benchmarks branch. I have been running all benchmarks with grid opt and will now run for bopt to compare. For the mean_absolute_percentage_error, yes that is the behaviour one would expect, as y_true tends zero, the percentage errors tends to infinity. To deal with this, @KochdumperNiklas has added a clause to omit any y_true<0.01.