elastic / ml-cpp

Machine learning C++ code
Other
7 stars 62 forks source link

[ML] Fixing force time shift logic #2701

Closed valeriy42 closed 3 months ago

valeriy42 commented 3 months ago

When performing a time shift callback, what should be the time at which the shift should be applied?

The original implementation was using now() which would work fine for live data, but not for backtesting. This PR changes this behavior. Now, we use the first timestamp when the detection rules have passed the conditions test.

Also, previous implementation missed the fact that each detector configuration is associated with two detectors: a simple counting detector and a specialized detector (e.g. metric). This means, that the same rule should shift two different models. Hence, I modified the logic responsible for making sure that every model is shifted only once.

The functionality was not released yet, hence I mark it as a non-issue.