Rikj000 / MoniGoMani

Isn't that what we all want? Our money to go many? Well that's what this framework/strategy hopes to do for you! By giving you & HyperOpt a lot of signals to alter the weights from.

Home Page:https://monigomani.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

⚡️ `mgm-hurry` - Automatically fix HyperOpt result output if `precision` is used

Rikj000 opened this issue · comments

With the current implementation of the precision setting the output of the HyperOpt results won't be corrected with a precision different from 1.

Which leads to the users having to run the Importance Calculator manually with --precision-used to manually fix their results.
See: Docs - FAQ

Example of what's wrong

With a min search space value of 10,
and a max search space value of 100,
and a precision value of 0.2

Then the actual min search space value will be 2 (min x precision),
and the actual max search space value will be 20! (max x precision)

While HyperOpting, MGM will automatically divide the values with the precision parameter again,
so the actually used min search space value is still 10 (2 / 0.2)
so the actually used max search space value is still 100 (20 / 0.2).
Which is a bit hard to grasp, but it effectively allows us to modify the step size of the HyperOpt.

However since in reality the search space is only between 2 - 20,
the HyperOpt output won't be divided again with the precision parameter

Proposed fix

🔲 In MoniGoManiConfig's function we can make the save_weak_strong_signal_overrides() function fetch the precision from mgm_config_files['mgm-config'] and then override the found value if the precision is different from 1.

The override values would be new_value = found_value / precision.

🔲 However we will need to check in MasterMoniGoManiHyperStrategy if this would not mess up HO2s when the corrected values are loaded in.

🔲 Once this is implemented then we can scrap --precision-used from the signal importance calulator & update the documentation.