diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 7c2d1ce..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 933dca2..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/timemachines.iml b/.idea/timemachines.iml deleted file mode 100644 index 0323f53..0000000 --- a/.idea/timemachines.iml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index a9c2c9e..4756313 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -14,7 +14,7 @@ You may ask yourself, "Well, how did I get here?" And you may ask yourself, "How drawing -But enough 80's rock. Chances are you're here because you reached out to connect on Linked-In, and you have some manner of time-series or quantitative interest, so I sent you an invite. Stop what you are doing. Open this [notebook](https://github.com/microprediction/microprediction/blob/master/submission_examples_die/first_submission.ipynb) and run it. The [README](https://github.com/microprediction) will make more sense, and perhaps too the notion of collective autonomous prediction. +But enough 80's rock. ## Specific goals The strategy here: @@ -40,55 +40,15 @@ The strategy here: # Contribution Patterns -I suppose it is nice if people follow, clap, share, heckle on [medium](https://microprediction.medium.com/), [linked-in](https://www.linkedin.com/company/65109690) if that helps bring in contributors. Thanks. I suppose you can star, fork, watch [timemachines](https://github.com/microprediction/timemachines) or even sign this tongue-in-cheek [petition](https://www.change.org/p/towards-data-science-have-towards-data-science-publish-an-article-critical-of-facebook-software) - unless you want a job at Facebook or Towards Data Science, some day :) But here's how you can really help, even if you are new to open source... - +I suppose it is nice if people follow, clap, share, heckle on [medium](https://microprediction.medium.com/), [linked-in](https://www.linkedin.com/company/65109690) if that helps bring in contributors. Thanks. I suppose you can star, fork, watch [timemachines](https://github.com/microprediction/timemachines). ## Creating colab notebooks illustrating the use of Python timeseries packages It helps speed the creation of autonomous algorithms, and Elo ratings, to have example notebooks for python time-series packages 0. See [good first issues](https://github.com/microprediction/timemachines/issues). Or search the same link for "Create colab notebook" -It's also not a bad way to familiarize yourself with packages that might be useful. No need to limit yourself to the ones in the issues. Anything that can predict k-steps ahead is fair game. See the [long list of packages](https://www.microprediction.com/blog/popular-timeseries-packages) - -## Running scripts - -Contributing compute: - 1. Cut and paste a bash command to drive the default "crawler". See [CONTRIBUTE_COMPUTE_LOCAL_ONE_LINE.md](https://github.com/microprediction/timemachines/blob/main/CONTRIBUTE_COMPUTE_LOCAL_ONE_LINE.md). Run a Python script directly if you prefer. See [CONTRIBUTE_COMPUTE_LOCAL](https://github.com/microprediction/timemachines/blob/main/CONTRIBUTE_COMPUTE_LOCAL.md). Or run a Python script on a PythonAnywhere account that drives a "crawler". See [CONTRIBUTE_COMPUTE_PA]( - https://github.com/microprediction/timemachines/blob/main/CONTRIBUTE_COMPUTE_PA.md) - 2. Cut and paste a bash command to burn some rare Memorable Unique Identifiers, and donate them. See [CONTRIBUTE_COMPUTE_MUIDS.md](https://github.com/microprediction/timemachines/blob/main/CONTRIBUTE_COMPUTE_MUIDS.md) - - ## Contribution to crawler creation - - 3. Create any kind of Python crawler. Run it. Improve it. Repeat. See the [knowledge center](https://www.microprediction.com/knowledge-center) tutorials. - 4. Create any kind of crawler, not in Python. There's less support for that, but see the [public api](https://www.microprediction.com/public-api) and Google search (for "microprediction client Julia", for example, or "micropredciction client typescript). - -## Contribution to the timemachines package -Open issues: - - 5. See [good first issues](https://github.com/microprediction/timemachines/issues) - -New package inclusion and approaches +New package inclusion and approaches: 6. See [CONTRIBUTE_BATCH_STYLE_MODELS](https://github.com/microprediction/timemachines/blob/main/CONTRIBUTE_BATCH_STYLE_MODELS.md) to add new functionality using non-incremental methods. 7. See [CONTRIBUTE_ONLINE_STYLE_MODELS](https://github.com/microprediction/timemachines/blob/main/CONTRIBUTE_ONLINE_STYLE_MODELS.md) to add new functionality using incremental methods. - -## Contribution of live data -Add live data that feeds the Elo ratings, and live contests too. - - 8. See [CONTRIBUTE_LIVE_DATA.md](https://github.com/microprediction/timemachines/blob/main/CONTRIBUTE_LIVE_DATA.md) - -# Friday chats - - - Grab the [slack invite](https://microprediction.github.io/microprediction/slack.html) - - Turn up to one of the informal chats we have every Friday noon EST. [meet](https://microprediction.github.io/microprediction/meet.html) - -But if you are shy that's fine too. I look forward to your pull requests, or seeing you on the leaderboard. Crawling can be completely anonymous, by the way. - -## Career advice? - -Some fraction of you were asking about career advice. There are people in the microprediction slack who can probably give better advice than me. Hassle them, but mine would be: - - - Take the time to learn how to contribute to open-source and do all your hobby projects in the open, on GitHub. - - Read the [Mathematics subject classification](https://en.wikipedia.org/wiki/Mathematics_Subject_Classification) and slowly, over time, familiarize yourself with the key seminal tricks in each area. Even if you expect to spend most of your time in [4.2.1](https://en.wikipedia.org/wiki/Computer_science#Artificial_intelligence) this will give you angles on problems that other's don't have. - -I fear my other advice mostly overlaps with platitudes. + diff --git a/CONTRIBUTE_COMPUTE_LOCAL.md b/CONTRIBUTE_COMPUTE_LOCAL.md deleted file mode 100644 index ec174e7..0000000 --- a/CONTRIBUTE_COMPUTE_LOCAL.md +++ /dev/null @@ -1,5 +0,0 @@ - - -Deprecated. - - diff --git a/CONTRIBUTE_COMPUTE_LOCAL_ONE_LINE.md b/CONTRIBUTE_COMPUTE_LOCAL_ONE_LINE.md deleted file mode 100644 index 89dec7f..0000000 --- a/CONTRIBUTE_COMPUTE_LOCAL_ONE_LINE.md +++ /dev/null @@ -1,5 +0,0 @@ - - -## Contribution pattern: compute (one-liner) - -Deprecated diff --git a/CONTRIBUTE_COMPUTE_MUIDS.md b/CONTRIBUTE_COMPUTE_MUIDS.md deleted file mode 100644 index 3d4e42a..0000000 --- a/CONTRIBUTE_COMPUTE_MUIDS.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -Deprecated diff --git a/CONTRIBUTE_COMPUTE_PA.md b/CONTRIBUTE_COMPUTE_PA.md deleted file mode 100644 index 5d94d19..0000000 --- a/CONTRIBUTE_COMPUTE_PA.md +++ /dev/null @@ -1,3 +0,0 @@ - - -Deprecated diff --git a/CONTRIBUTE_LIVE_DATA.md b/CONTRIBUTE_LIVE_DATA.md deleted file mode 100644 index b2136ad..0000000 --- a/CONTRIBUTE_LIVE_DATA.md +++ /dev/null @@ -1,43 +0,0 @@ - -## Contribution pattern: new live data - -Add live data that feeds the Elo ratings - -### Likely contributor - -- You have an interesting source of live data. -- Or you want something predicted - - -### How to contribute - - - Publish live data on an ongoing basis - - This can help make the [Elo ratings](https://microprediction.github.io/timeseries-elo-ratings/html_leaderboards/univariate-k_003.html) better. - - However only "live" data is ideal, to prevent algorithms from memorizing - - See [instructions for publishing data](https://www.microprediction.com/get-predictions) at www.microprediction.com (maybe jump to - https://www.microprediction.com/python-4). Basically what you need to do is set up a cron job or similar that periodically grabs a live - data point and publishes it. First: - - - pip install microprediction - from microprediction import new_key - write_key = new_key(difficulty=12) # <--- Takes a long time, sorry - -Then your regular job can do the following: - - from microprediction import MicroWriter - writer = MicroWriter(write_key=write_key) - writer.set(name='my_own_stream.json',value=3.14157) # <--- Must end in .json - -This will create a stream like [airport short term parking](https://www.microprediction.org/stream_dashboard.html?stream=airport-ewr-short-term_parking_a_b_c) and a bunch of -hungry time-series algorithms will come to it. The remainder of this note deals only with skater creation. - -## More help / discussion - -As noted, I try to jump on a Google Meet twice a week and the details are in the microprediction [knowledge center](https://www.microprediction.com/knowledge-center). My arrival rate is higher on Fridays than Tuesdays :) - -I'm not so good at scheduling calls outside of these times and frankly that tends to be counter to my productivity anyway. So just jump on some Tuesday night or -Friday noon if you are keen to contribute to this package, or anything else that relates to open source community prediction. - - -![](https://i.imgur.com/l14hKmr.jpg) diff --git a/CONTRIBUTE_ONLINE_STYLE_MODELS.md b/CONTRIBUTE_ONLINE_STYLE_MODELS.md index 7f56bb9..b9e23d6 100644 --- a/CONTRIBUTE_ONLINE_STYLE_MODELS.md +++ b/CONTRIBUTE_ONLINE_STYLE_MODELS.md @@ -14,7 +14,7 @@ If the package assumes you have to fit every new data point (like Prophet or man ### How to contribute -1. Join slack (invite [here](https://www.microprediction.com/knowledge-center)) +1. (Optional) Join crunch discord (invite [here](https://github.com/microprediction/monteprediction/blob/main/TFRO.md)) 2. Grok the package you think should be in. Create an example colab notebook (like [examples here](https://github.com/microprediction/timeseries-notebooks)) that uses the package. It should show how to produce a k-vector of 1..k step ahead predictions. You'd be surprised at how many packages seem to think this is an obscure use case and don't include it in their README :) At this point you've already helped a lot. If you want to take it all the way... @@ -65,11 +65,8 @@ The directory [simple](https://github.com/microprediction/timemachines/tree/main - Your function must return a list or vector x of length k where x[0] is 1 step ahead, x[1] is 2 steps ahead and so forth. Ideally this is done in a fast, incremental manner. Every time a number arrives the predictions for the next k are spat out. It is okay to create skaters that are slow and - use packages that are designed for more one-off tabular use - since it is helpful to be able to benchmark fast skaters against slow ones. However I would suggest - trying out some of the packages in the "online" section of the package list (see [Popular Python Time-Series Packages](https://www.microprediction.com/blog/popular-timeseries-packages)). For - instance state space models or online libraries like river seem promising. - - + use packages that are designed for more one-off tabular use - since it is helpful to be able to benchmark fast skaters against slow ones. + - Your function must also return a second list w that will be interpreted (loosely) as a 1-standard deviation error in the skater's forecast. It is not absolutely necessary to fret about this. Some skaters just return [1 1 1 ... 1]. However, it is just a couple of lines of code to include a skater's own empirical estimate of its own accuracy and this is extremely important to do if you want your skater to be included in diff --git a/README.md b/README.md index 2a32921..5fa2678 100644 --- a/README.md +++ b/README.md @@ -43,13 +43,13 @@ See [docs/interface](https://microprediction.github.io/timemachines/interface) f ### Contributions and capstone projects +- See [TFRO.md](https://github.com/microprediction/monteprediction/blob/main/TFRO.md) - See [CONTRIBUTE.md](https://github.com/microprediction/timemachines/blob/main/CONTRIBUTE.md) and [good first issues](https://github.com/microprediction/timemachines/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). - See the suggested steps for a [capstone project](https://microprediction.github.io/timemachines/capstone.html). ### Getting live help -- [FAQ](https://github.com/microprediction/timemachines/blob/main/FAQ.md). -- See the Slack invite on my user page [here](https://github.com/microprediction/slack). +- [FAQ](https://github.com/microprediction/timemachines/blob/main/FAQ.md). - Office hours [here](https://github.com/microprediction/meet). - Learn how to deploy some of these models and try to win the [daily $125 prize](https://www.microprediction.com/competitions/daily). diff --git a/docs/articles.md b/docs/articles.md index d44a959..eb103a6 100644 --- a/docs/articles.md +++ b/docs/articles.md @@ -9,8 +9,6 @@ View as [web page](https://microprediction.github.io/timemachines/uses) or [sour - [Does Wiggling Make Time-Series Models More Regular?](https://microprediction.medium.com/smooth-move-does-wiggling-make-time-series-models-less-accurate-8544e675873) - [Chasing StatsModel.AutoARIMA residuals in two lines of code](https://microprediction.medium.com/chasing-statsforecast-autoarima-residuals-in-two-lines-of-code-8a39c8c2561f) - [Combining PyCaret and Timemachines for Time-Series Prediction](https://microprediction.medium.com/combining-pycaret-and-timemachines-for-time-series-prediction-a4d456e47cd9) -- [Predicting, Fast and Slow](https://www.microprediction.com/blog/timemachines) -- [Fast Python Time-Series Forecasting](https://www.microprediction.com/blog/fast) ### Indirectly related / suggestive diff --git a/regression.py b/regression.py deleted file mode 100644 index f7ee1f2..0000000 --- a/regression.py +++ /dev/null @@ -1,15 +0,0 @@ -from timemachines.skatertools.testing.allregressiontests import REGRESSION_TESTS -import time -import random -TIMEOUT = 60*5 - -# Regression tests run occasionally to check various parts of hyper-param spaces, etc. - -if __name__=='__main__': - start_time = time.time() - elapsed = time.time()-start_time - while elapsed < TIMEOUT: - a_test = random.choice(REGRESSION_TESTS) - print('Running '+str(a_test.__name__)) - a_test() - elapsed = time.time() - start_time