There is still quite a lot of work to be done, but I am already creating this PR to get some initial feedback on how to integrate this into Kloppy. I've created a notebook in docs/examples/event_tracking_sync.ipynb that illustrates how to use the code. Apart from a few edge cases in the Needleman-Wunsch alignment method, everything seems to work.
I've now implemented it such that it can be configured as ETSY, sync.soccer, the method used by Anzer and Bauer, or any combination of these. For example, you can use the Needleman-Wunsch alignment method of syn.soccer with the rules of ETSY. This gives the user a lot of flexibility, but I think it would be good to agree on a default method that works well on most datasets. If people would be interested in playing with it and have suggestions for default parameter settings that work well, this would be useful too.
Fixes #61
Tentative TODO list:
[ ] Add tests
[ ] Add EventTrackingSynchronizer.fit(...) method to tune weights of scoring rules on an annotated dataset
There is still quite a lot of work to be done, but I am already creating this PR to get some initial feedback on how to integrate this into Kloppy. I've created a notebook in
docs/examples/event_tracking_sync.ipynb
that illustrates how to use the code. Apart from a few edge cases in the Needleman-Wunsch alignment method, everything seems to work.I've now implemented it such that it can be configured as ETSY, sync.soccer, the method used by Anzer and Bauer, or any combination of these. For example, you can use the Needleman-Wunsch alignment method of syn.soccer with the rules of ETSY. This gives the user a lot of flexibility, but I think it would be good to agree on a default method that works well on most datasets. If people would be interested in playing with it and have suggestions for default parameter settings that work well, this would be useful too.
Fixes #61
Tentative TODO list:
EventTrackingSynchronizer.fit(...)
method to tune weights of scoring rules on an annotated datasetEventDataset.sync(tracking_dataset, ...)
methodhttps://github.com/PySport/kloppy/assets/2175271/87c93c7c-99f1-4288-a000-b0338977b1bc