[HN Gopher] Aeon: A unified framework for machine learning with ...
___________________________________________________________________
Aeon: A unified framework for machine learning with time series
Author : megalodon
Score : 100 points
Date : 2023-06-22 14:05 UTC (8 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| uoaei wrote:
| To obfuscate the choice of algorithm behind kwargs (as opposed to
| creating separate classes) has always seemed to me a suspect
| choice, in sklearn as well as here. And it seems to make
| development of the package more complex at the expense of... less
| readable code for the user, with less flexibility for differences
| in hyperparameter specifications, etc.
|
| There are of course exceptions, something like
| `TrendPredictor(order=1, interp="polynomial")` as an example can
| be flexibly adapted up or down the hierarchy of model complexity
| much easier than commenting out different lines.
| tony_bagnall wrote:
| I have taught machine learning in Java using Weka for a long
| time, and when we moved over to sklearn this also annoyed me.
| It made a good teaching point with, for example, decision trees
| having a dozen separate different classes for different
| algorithms in Weka and sklearn having one configurable one. I
| guess just design preference in the end. With aeon we are
| leaning more towards the one class per algorithm or algorithm
| family, but its not a hard and fast rule. One issue is when
| does a change in algorithm mean a change in class? So, for
| example, we have separate transformers for ROCKET, MINROCKET
| and MULTIROCKET (convolution transforms), but a single
| configurable RocketClassifier. UltimatelyI think it comes down
| to how comprehensible it is to a new user.
| ahif1999 wrote:
| Recently aeon included a new implementation for both PAA and SAX
| transformations that are much more efficient and much faster !
| ahif1999 wrote:
| all of the functionalities of aeon can easily be mastered thanks
| for the help of its documentation and example notebooks.
| djl0 wrote:
| Looking forward to checking this out! How does this compare with
| darts[1]?
|
| [1] https://unit8co.github.io/darts/
| polo333 wrote:
| Darts is a commercial FOSS, aeon is community driven. Also aeon
| is more following scikit-learn.
| hotstickyballs wrote:
| It strikes me as a bit weird that these time series packages tend
| to discard the time component of the data and just.. not do
| anything with it.
|
| Prophet, for example uses dates to create Fourier terms and
| indicators to holidays for example and that just seems like a
| more sane approach.
| poomer wrote:
| Most time series models assume you've already deseasonalized
| your data in advance. Typically, seasonality is obvious to the
| human doing the modeling (e.g. sales being up near Christmas),
| so it's usually preferable for the human to deseasonalize the
| data in advance using a separate model that bakes in some of
| their human knowledge of how the world works. Forcing the model
| to learn seasonal trends fully on its own adds another layer of
| estimation error.
|
| Prophet is popular because it works off the shelf with non-
| deseasonalized data and mixed frequency data, which makes it
| great for quick forecasting exercises. But IMO it is never the
| ideal model if you have a lot of time and expertise to work
| with.
| frankfrank13 wrote:
| Yeah most of the time series data I've had to work with I end
| up spending a huge amount of time interpolating (so all time
| slices have _some_ data even if it isn 't real) or aggregating
| to some common denominator (e.g taking sporadic sales and
| summing up to daily sales). I get why most packages expect
| nicely spaced or evenly dense data, but boy I would love if I
| had more options there.
| frakt0x90 wrote:
| Prophet has worked so well for us, especially since we have a
| TON of custom events and holidays to consider. None of the
| other approaches have really come close.
| tnecniv wrote:
| It depends on your time series, really. If the samples are
| evenly spaced, e.g., your sensor gives you a reading every
| millisecond, your measured sequences aren't partially
| overlapping, and you don't have structured discrete events,
| then time isn't very useful. You can always rescale time so
| that it is just the same as the index.
|
| For your calendar example, date information is very useful
| because patterns tend to exhibit a cyclic nature across years
| and there's discrete special events (holidays). With enough
| data, you probably don't need to include the date, but it's
| informative for smaller data sets.
| thetinymite wrote:
| I wonder why aeon split from sktime.
|
| https://twitter.com/sktime_toolbox/status/164721412371161907...
| sampo wrote:
| Here is a little about it:
| https://astrojuanlu.substack.com/p/episodio-70
| polo333 wrote:
| See my comment above, mostly all active core devs from sktime
| at that time left or had to leave to the aeon project
| tony_bagnall wrote:
| hi, I dont want to enter a public discussion about the split of
| sktime, I fear the application of Godwin's law. A summary of the
| key points behind the split from my perspective are here
| https://github.com/aeon-toolkit/aeon/issues/456 the other sides
| view will no doubt be forthcoming. If you want to chat about it,
| join our slack and message me, I'm more than happy to help. How
| are we different? Well I think we can all live together, its open
| source, but from my perspective the priorities are 1. Align as
| closely as we can with sklearn, so as to make it completely
| intuitive how to use aeon if you know sklearn. 2. Focus on
| implementations of state of the art algorithms for time series
| machine learners and less on just wrapping other code. The goal
| is to reduce the lead time from publication of new ideas to
| widespread adoption 3. Documentation: make it good.
|
| my interests primarily lie in classification, clustering and
| regression, but next year we are going into the forecasting
| world, plenty of exciting collaborations in the brew.
| Epa095 wrote:
| Wondering how it compares to the rest of the lot: sktime,
| tslearn, darts, pyts, and cesium.
| sampo wrote:
| > Wondering how it compares to the rest of the lot: sktime
|
| It's a fork of sktime. Last common commit before the fork is on
| Jan 30, 2023.
| polo333 wrote:
| aeon is based on sktime==0.16.0
| abrichr wrote:
| Links for those who are curious:
|
| https://github.com/sktime/sktime
|
| https://github.com/tslearn-team/tslearn
|
| https://github.com/unit8co/darts
|
| https://github.com/johannfaouzi/pyts
|
| https://github.com/cesium-ml/cesium
|
| Also:
|
| https://github.com/timeseriesAI/tsai
| polo333 wrote:
| Aeon is an sktime fork which happened after one of the sktime
| core developers (Franz K.) took hostage of the sktime project by
| kicking out other core devs from the GitHub. Its info you can
| collect from some GH issues
| ahif1999 wrote:
| Aeon has the advantage of including a friendly deep learning
| framework, all of the models discussed on the 'Deep Learning for
| Time Series Classification: a review" are included in aeon with
| the variety of choices on how to change the parameters of the
| architecture. More state of the art models such as InceptionTime
| are also included, not only for classification but regression as
| well and soon forecasting and clustering.
___________________________________________________________________
(page generated 2023-06-22 23:01 UTC)