As stated in official pycaret repo
PyCaret's default installation only installs hard dependencies as listed in the requirements.txt file.
pip install pycaret
To install the full version:
pip install pycaret[full]
And in requirements.txt
# Base
ipython>=5.5.0
ipywidgets>=7.6.5 # required by pycaret.internal.display
tqdm>=4.62.0 # required by pycaret.internal.display
numpy>=1.21, <1.23 # Can't >=1.23 because of sktime/numba
pandas>=1.3.0, <1.5.0 # Can't >=1.5 because of sktime
jinja2>=1.2 # Required by pycaret.internal.utils --> pandas.io.formats.style
scipy<1.9.0 # Can't >=1.9.0 due to sktime
joblib>=1.1.0
scikit-learn>=1.0
pyod>=0.9.8
imbalanced-learn>=0.8.1
category-encoders>=2.4.0
lightgbm>=3.0.0
numba~=0.55.0
requests>=2.27.1 # Required by pycaret.datasets
psutil>=5.9.0
markupsafe>=2.0.1 # Fixes Google Colab issue
importlib_metadata
# Plotting
matplotlib>=3.3.0
scikit-plot>=0.3.7
yellowbrick>=1.4
plotly>=5.0.0
kaleido>=0.2.1
schemdraw>=0.14
plotly-resampler>=0.7.2.2
# Time-series
statsmodels>=0.12.1
sktime~=0.13.1
tbats>=1.1.0
pmdarima>=1.8.0
These packages are always installed. Whereas in requirements-optional.txt
# Analysis
shap>=0.38.0
interpret>=0.2.7
umap-learn>=0.5.2
pandas-profiling>=3.1.0
explainerdashboard>=0.3.8 # For dashboard method
autoviz>=0.1.36 # For EDA method
fairlearn>=0.7.0 # For check_fairness method
# Models
xgboost>=1.1.0
catboost>=0.23.2
kmodes>=0.11.1
mlxtend>=0.19.0
statsforecast>=0.5.5
scikit-learn-intelex>=2021.6.3
# Tuners
tune-sklearn>=0.2.1
protobuf<4.0.0 # broken in Ray <1.13
ray[tune]>=1.0.0
hyperopt>=0.2.7
optuna>=2.2.0
scikit-optimize>=0.9.0
# MLOps
mlflow>=1.24.0
gradio>=2.8.10
fastapi>=0.75.0 # For web api
uvicorn>=0.17.6 # For web api
m2cgen>=0.9.0 # For model conversion
evidently>=0.1.45.dev0 # for drift reporting
# NLP
nltk>=3.7
pyLDAvis>=3.3.1
gensim>=4.1.2
spacy>=3.2.3
wordcloud>=1.8.1
textblob>=0.17.1
# Parallel
fugue~=0.6.6
flask>=2.0.3
These are only installed when using [full]
Full list of extras in setup.py
extras_require = {
"analysis": required_optional.split("\n\n")[0].splitlines(),
"models": required_optional.split("\n\n")[1].splitlines(),
"tuners": required_optional.split("\n\n")[2].splitlines(),
"mlops": required_optional.split("\n\n")[3].splitlines(),
"nlp": required_optional.split("\n\n")[4].splitlines(),
"parallel": required_optional.split("\n\n")[5].splitlines(),
}
extras_require["full"] = (
extras_require["analysis"]
+ extras_require["models"]
+ extras_require["tuners"]
+ extras_require["mlops"]
+ extras_require["parallel"]
)