Skip to content

Latest commit

 

History

History
131 lines (84 loc) · 5.75 KB

INSTALL.md

File metadata and controls

131 lines (84 loc) · 5.75 KB

Don't worry this will all go smoothly. Two suggested paths:

1. Use only venv and pip
2. Use miniconda

I definitely suggest the latter if you are an M1 user

Option 1) Install on python virtual environment

See the reasonable intro to venv here if you are not familiar. Skip to next section if using mac silicon (new M1). Example of creating new env:

mkdir virtual-envs
cd virtual-envs
python -m venv myenv 
source myenv/bin/activate 

I suggest that life is less frustrating if you patiently install popular prerequisites one by one (on some MacOS configurations, you may have to use pip3, instead of pip)

pip install --upgrade pip
pip install --upgrade wheel
pip install --upgrade numpy
pip install --upgrade timemachines
pip install --upgrade joblib
pip install --upgrade numba
pip install --upgrade scipy 
pip install --upgrade scikit-learn 

so you can see if you run into difficulty. If desperate, you can maybe scrape by without the last two as they are only used for metrics. You'll still have a slew of speedy home-spun forecasting functions such as the simple models. But, if you want to make a reasonably large number of models (skaters) available to yourself then you'll need most of these and also:

pip install --upgrade statsmodels
pip install --upgrade tensorflow
pip install --upgrade torch
pip install --upgrade pandas
pip install --upgrade cython

It is hardest to avoid using statsmodels as just about every other package wraps statsmodels.tsa As an aside you may get better performance by first installing tensorflow following the instructions and perhaps reading this thread.

Next decide how badly you want prophet, or other timeseries packages that wrap it. For example, On Apple M1, problems have been reported. But nevertheless:

 pip install --upgrade prophet

On some systems pystan is flaky, thus also prophet, thus also things wrapping prophet. You'll need an older pystan (unless things have changed). Maybe read my review of prophet before spending too much install agony there. It is an extrapolation library, really, not a timeseries forecasting library.

Finally, it is time to install the packages you wish to employ. You may wish to first check the Elo ratings to get a vague idea of accuracy and speed, and which packages you wish to install. But here are some suggestions, ordered by approximate easy of install rather than performance.

pip install --upgrade river
pip install --upgrade git+https://github.com/oseiskar/simdkalman
pip install --upgrade pydlm
pip install --upgrade divinity
pip install --upgrade pmdarima
pip install --upgrade u8darts        (does not include prophet, or...)
pip install --upgrade darts          (does include prophet)

Here it might pay to read the darts install guide for advice on libomp and other troubleshooting. In particular if lightgbm gives you headaches, then maybe resort to the miniconda route. See notes on conda install -c conda-forge lightgbm in the next section.

Moving on:

pip install --upgrade sktime

If that fails, try

export SKTIME_NO_OPENMP=true
pip install --upgrade sktime

Continuing...

pip install --upgrade tbats
pip install --upgrade successor
pip install --upgrade orbit-ml
pip install --upgrade neuralprophet
pip install --upgrade greykite

You might get this warning:

sktime 0.9.0 requires statsmodels<=0.12.1

Proceeding..

pip install --upgrade salesforce-merlion
pip install --upgrade pycaret-ts-alpha

Finally, do this only if you wish to have greater ability to pull exogenous data in:

pip install --upgrade microprediction

Option 2. Install with (mini) conda

If you are a conda person, or use Mac silicon and are not especially brave, then:

brew install miniforge

(you can get homebrew here). You have other options here for installing miniforge. Then make a new conda env:

conda create -n myenv
conda activate myenv 

and proceed cautiously:

conda install numpy
conda install scipy 
conda install scikit-learn
conda install pandas
conda install statsmodels
conda install matplotlib
pip install timemachines

Then proceed, using miniconda where possible and pip if conda doesn't have it yet. For instance if installing a package that needs lightgbm is causing a headache then try:

conda install -c conda-forge lightgbm

Then proceed as above as see how far you get with timeseries packages

 pip install --upgrade darts
 pip install --upgrade river 

and so on (see list above). Again, the apple silicon (m1) install situation is particularly fluid. Maybe see this thread for ideas and keep open the possibility of the --no-use-pep517 option.

pip install whatever --no-use-pep517

Install troubleshooting remark on colab

To clean out old versions of pytz etc I sometimes use:

!pip uninstall numpy -y

in colab notebooks. However hopefully that won't be required by the time you read this.