Metadata-Version: 2.4
Name: pycaret-core
Version: 3.5.0
Summary: PyCaret - An open source, low-code machine learning library in Python.
Author: pycaret developers
Maintainer: pycaret developers
License: MIT License
        
        Copyright (c) 2026 - present, PyCaret maintainers, represented as per CONTACT
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: API Reference, https://py-caret.readthedocs.io/en/latest/
Project-URL: Documentation, https://py-caret.readthedocs.io/en/latest/
Project-URL: Download, https://pypi.org/project/pycaret-core/#files
Project-URL: Homepage, https://py-caret.readthedocs.io/en/latest/
Project-URL: Release Notes, https://github.com/sktime/pycaret/releases
Project-URL: Repository, https://github.com/sktime/pycaret
Keywords: data-mining,data-science,classification,clustering,detection,forecasting,machine-learning,regression,time-series
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development
Requires-Python: <3.15,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: scikit-base>=0.6.1
Requires-Dist: ipython>=5.5.0
Requires-Dist: ipywidgets>=7.6.5
Requires-Dist: tqdm>=4.62.0
Requires-Dist: numpy<2.0,>=1.21; python_version < "3.13"
Requires-Dist: numpy<3,>=2.0; python_version >= "3.13"
Requires-Dist: pandas<2.2,>=1.5.0; python_version < "3.13"
Requires-Dist: pandas>=2.2.0; python_version >= "3.13"
Requires-Dist: jinja2>=3
Requires-Dist: scipy<=1.11.4,>=1.6.1; python_version < "3.13"
Requires-Dist: scipy<2,>=1.14.0; python_version >= "3.13"
Requires-Dist: joblib>=1.4.2
Requires-Dist: scikit-learn<1.5,>=1.4; python_version < "3.13"
Requires-Dist: scikit-learn>=1.5; python_version >= "3.13"
Requires-Dist: pyod>=1.1.3
Requires-Dist: imbalanced-learn>=0.12.0
Requires-Dist: category-encoders>=2.4.0
Requires-Dist: lightgbm<4.7.0,>=3.0.0; python_version < "3.13"
Requires-Dist: lightgbm>=3.0.0; python_version >= "3.13"
Requires-Dist: numba>=0.55.0; python_version < "3.13"
Requires-Dist: numba<0.67,>=0.60.0; python_version >= "3.13"
Requires-Dist: requests>=2.27.1
Requires-Dist: psutil>=5.9.0
Requires-Dist: cloudpickle
Requires-Dist: xxhash
Requires-Dist: trio<0.25.0,>=0.22.0; python_version < "3.13"
Requires-Dist: trio>=0.27.0; python_version >= "3.13"
Requires-Dist: setuptools; python_version >= "3.12"
Requires-Dist: packaging>=21.0
Requires-Dist: matplotlib<3.8.0,>=3.5.0; python_version < "3.13"
Requires-Dist: matplotlib<3.11.0,>=3.8.0; python_version >= "3.13"
Requires-Dist: mljar-scikit-plot
Requires-Dist: yellowbrick>=1.4; python_version < "3.13"
Requires-Dist: yellowbrick>=1.5; python_version >= "3.13"
Requires-Dist: plotly>=5.14.0
Requires-Dist: kaleido>=0.2.1
Requires-Dist: schemdraw==0.15
Requires-Dist: plotly-resampler>=0.8.3.1
Requires-Dist: statsmodels>=0.12.1
Requires-Dist: sktime>=0.31.0
Requires-Dist: tbats>=1.1.3
Requires-Dist: pmdarima>=2.0.4; python_version < "3.13"
Requires-Dist: pmdarima>=2.1.0; python_version >= "3.13"
Provides-Extra: full
Requires-Dist: shap<0.50.0,>=0.49.1; python_version < "3.13" and extra == "full"
Requires-Dist: shap>=0.50.0; python_version >= "3.13" and extra == "full"
Requires-Dist: interpret>=0.2.7; extra == "full"
Requires-Dist: umap-learn>=0.5.2; extra == "full"
Requires-Dist: pyyaml; extra == "full"
Requires-Dist: ydata-profiling<4.13,>=4.3.1; python_version < "3.10" and extra == "full"
Requires-Dist: ydata-profiling>=4.13.0; (python_version >= "3.10" and python_version < "3.14") and extra == "full"
Requires-Dist: standard-imghdr; python_version >= "3.13" and extra == "full"
Requires-Dist: explainerdashboard>=0.3.8; extra == "full"
Requires-Dist: fairlearn>=0.7.0; extra == "full"
Requires-Dist: xgboost<3.1.0,>=2.0.0; python_version < "3.13" and extra == "full"
Requires-Dist: xgboost>=3.1.1; python_version >= "3.13" and extra == "full"
Requires-Dist: catboost>=1.2.5; extra == "full"
Requires-Dist: kmodes>=0.11.1; extra == "full"
Requires-Dist: mlxtend>=0.19.0; extra == "full"
Requires-Dist: statsforecast<=2.0.1,>=1.6.0; extra == "full"
Requires-Dist: scikit-learn-intelex==2024.2.0; (python_version < "3.13" and platform_system == "Windows" and (platform_machine == "x86_64" or platform_machine == "AMD64")) and extra == "full"
Requires-Dist: scikit-learn-intelex>=2024.0.0; ((python_version >= "3.13" or platform_system != "Windows") and (platform_machine == "x86_64" or platform_machine == "AMD64")) and extra == "full"
Requires-Dist: tune-sklearn; python_version < "3.13" and extra == "full"
Requires-Dist: ray[tune]; python_version < "3.13" and extra == "full"
Requires-Dist: hyperopt>=0.2.7; extra == "full"
Requires-Dist: optuna>=3.0.0; extra == "full"
Requires-Dist: optuna-integration; extra == "full"
Requires-Dist: scikit-optimize>=0.9.0; python_version < "3.12" and extra == "full"
Requires-Dist: mlflow>=2.0.0; extra == "full"
Requires-Dist: gradio>=3.50.2; extra == "full"
Requires-Dist: boto3>=1.24.56; extra == "full"
Requires-Dist: fastapi; extra == "full"
Requires-Dist: uvicorn>=0.17.6; extra == "full"
Requires-Dist: m2cgen>=0.9.0; extra == "full"
Requires-Dist: evidently<0.8.0,>=0.7.0; extra == "full"
Requires-Dist: dask>=2024.1.0; extra == "full"
Requires-Dist: distributed>=2024.1.0; extra == "full"
Requires-Dist: fugue>=0.9.0; extra == "full"
Requires-Dist: flask; extra == "full"
Requires-Dist: Werkzeug<=3.0.6,>=2.2; extra == "full"
Requires-Dist: pytest>=8.0.0; extra == "full"
Requires-Dist: moto>=4.0.0; extra == "full"
Requires-Dist: fugue[dask]; extra == "full"
Requires-Dist: dash[testing]; extra == "full"
Requires-Dist: dash-bootstrap-components<2.0.0; extra == "full"
Requires-Dist: black>=24.8.0; extra == "full"
Requires-Dist: isort>=5.13.2; extra == "full"
Requires-Dist: flake8>=7.1.1; extra == "full"
Requires-Dist: setuptools>=71.1.0; extra == "full"
Requires-Dist: mypy>=1.0.0; extra == "full"
Provides-Extra: analysis
Requires-Dist: shap<0.50.0,>=0.49.1; python_version < "3.13" and extra == "analysis"
Requires-Dist: shap>=0.50.0; python_version >= "3.13" and extra == "analysis"
Requires-Dist: interpret>=0.2.7; extra == "analysis"
Requires-Dist: umap-learn>=0.5.2; extra == "analysis"
Requires-Dist: pyyaml; extra == "analysis"
Requires-Dist: ydata-profiling<4.13,>=4.3.1; python_version < "3.10" and extra == "analysis"
Requires-Dist: ydata-profiling>=4.13.0; python_version >= "3.10" and extra == "analysis"
Requires-Dist: standard-imghdr; python_version >= "3.13" and extra == "analysis"
Requires-Dist: explainerdashboard>=0.3.8; extra == "analysis"
Requires-Dist: fairlearn>=0.7.0; extra == "analysis"
Provides-Extra: models
Requires-Dist: xgboost<3.1.0,>=2.0.0; python_version < "3.13" and extra == "models"
Requires-Dist: xgboost>=3.1.1; python_version >= "3.13" and extra == "models"
Requires-Dist: catboost>=1.2.5; extra == "models"
Requires-Dist: kmodes>=0.11.1; extra == "models"
Requires-Dist: mlxtend>=0.19.0; extra == "models"
Requires-Dist: statsforecast<=2.0.1,>=1.6.0; extra == "models"
Requires-Dist: scikit-learn-intelex==2024.2.0; (python_version == "3.10" and platform_system == "Windows" and (platform_machine == "x86_64" or platform_machine == "AMD64")) and extra == "models"
Requires-Dist: scikit-learn-intelex>=2024.0.0; ((python_version != "3.10" or platform_system != "Windows") and (platform_machine == "x86_64" or platform_machine == "AMD64")) and extra == "models"
Provides-Extra: tuners
Requires-Dist: tune-sklearn; python_version < "3.13" and extra == "tuners"
Requires-Dist: ray[tune]; python_version < "3.13" and extra == "tuners"
Requires-Dist: hyperopt>=0.2.7; extra == "tuners"
Requires-Dist: optuna>=3.0.0; extra == "tuners"
Requires-Dist: optuna-integration; extra == "tuners"
Requires-Dist: scikit-optimize>=0.9.0; python_version < "3.12" and extra == "tuners"
Provides-Extra: mlops
Requires-Dist: mlflow>=2.0.0; extra == "mlops"
Requires-Dist: gradio>=3.50.2; extra == "mlops"
Requires-Dist: boto3>=1.24.56; extra == "mlops"
Requires-Dist: fastapi; extra == "mlops"
Requires-Dist: uvicorn>=0.17.6; extra == "mlops"
Requires-Dist: m2cgen>=0.9.0; extra == "mlops"
Requires-Dist: evidently<0.8.0,>=0.7.0; extra == "mlops"
Provides-Extra: parallel
Requires-Dist: dask>=2024.1.0; extra == "parallel"
Requires-Dist: distributed>=2024.1.0; extra == "parallel"
Requires-Dist: fugue>=0.9.0; extra == "parallel"
Requires-Dist: flask; extra == "parallel"
Requires-Dist: Werkzeug<=3.0.6,>=2.2; extra == "parallel"
Provides-Extra: prophet
Requires-Dist: prophet>=1.0.1; extra == "prophet"
Provides-Extra: dev
Requires-Dist: black>=24.8.0; extra == "dev"
Requires-Dist: isort>=5.13.2; extra == "dev"
Requires-Dist: flake8>=7.1.1; extra == "dev"
Requires-Dist: setuptools>=71.1.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=3.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=0.5.0; extra == "docs"
Requires-Dist: numpy; extra == "docs"
Provides-Extra: test
Requires-Dist: anywidget>=0.9.13; extra == "test"
Requires-Dist: pytest>=8.0.0; extra == "test"
Requires-Dist: moto>=4.0.0; extra == "test"
Requires-Dist: fugue[dask]; extra == "test"
Requires-Dist: dash[testing]; extra == "test"
Requires-Dist: pytest-timeout; extra == "test"
Dynamic: license-file

<a href="https://py-caret.readthedocs.io/en/latest/"><img src="https://github.com/sktime/pycaret/blob/main/docs/images/logo.png?raw=1" width="175" align="right" /></a>

## **PyCaret - the open-source, low-code machine learning framework**

#### 🎉🎉🎉 **PyCaret 3.5.0 is now available!** 🎉🎉🎉

PyCaret is a low-code, end-to-end ML and model management tool for the experimentation cycle.

PyCaret provides low-code APIs for state-of-art AI frameworks such as scikit-learn, XGBoost, LightGBM, CatBoost, and more.

**This is the active community fork of the `pycaret` package:** community owned,
professionally maintained, with a permissive license, and published under
the PyPI name `pycaret-core`. It is maintained in direct continuity of `pycaret 3`.


|  | **[Documentation](https://py-caret.readthedocs.io/en/latest/)** · **[Tutorials](https://py-caret.readthedocs.io/en/latest/tutorials.html)** · **[Release Notes](https://github.com/sktime/pycaret/releases)** |
|---|---|
| **Open&#160;Source** | [![License](https://img.shields.io/pypi/l/ansicolortags.svg)](https://img.shields.io/pypi/l/ansicolortags.svg) [![GC.OS Sponsored](https://img.shields.io/badge/GC.OS-Sponsored%20Project-orange.svg?style=flat&colorA=0eac92&colorB=2077b4)](https://www.gcos.ai/) |
| **Tutorials** | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/sktime/pycaret/main?filepath=tutorials) |
| **Community** | [![!discord](https://img.shields.io/static/v1?logo=discord&label=discord&message=chat&color=lightgreen)](https://discord.com/invite/54ACzaFsn7) [![!slack](https://img.shields.io/static/v1?logo=linkedin&label=LinkedIn&message=news&color=lightblue)](https://www.linkedin.com/company/scikit-time/)  |
| **CI/CD** | [![github-actions](https://img.shields.io/github/actions/workflow/status/sktime/pycaret/release.yml?logo=github)](https://github.com/sktime/pycaret/actions/workflows/release.yml) [![readthedocs](https://img.shields.io/readthedocs/py-caret?logo=readthedocs)](https://py-caret.readthedocs.io/en/latest/tutorials.html) |
| **Code** |  [![!pypi](https://img.shields.io/pypi/v/pycaret-core?color=orange)](https://pypi.org/project/pycaret-core/) [![!python-versions](https://img.shields.io/pypi/pyversions/pycaret-core)](https://www.python.org/) [![!black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)  |
| **Downloads**| [![Downloads](https://static.pepy.tech/personalized-badge/pycaret?period=week&units=international_system&left_color=grey&right_color=blue&left_text=weekly%20(pypi))](https://pepy.tech/project/pycaret) [![Downloads](https://static.pepy.tech/personalized-badge/pycaret?period=month&units=international_system&left_color=grey&right_color=blue&left_text=monthly%20(pypi))](https://pepy.tech/project/pycaret) [![Downloads](https://static.pepy.tech/personalized-badge/pycaret?period=total&units=international_system&left_color=grey&right_color=blue&left_text=cumulative%20(pypi))](https://pepy.tech/project/pycaret) |


![alt text](docs/images/quick_start.gif)

<div align="left">

# Welcome to PyCaret
PyCaret is an open-source, low-code machine learning library in Python that automates machine learning workflows. It is an end-to-end machine learning and model management tool that speeds up the experiment cycle exponentially and makes you more productive.

In comparison with the other open-source machine learning libraries, PyCaret is an alternate low-code library that can be used to replace hundreds of lines of code with few lines only. This makes experiments exponentially fast and efficient. PyCaret is essentially a Python wrapper around several machine learning libraries and frameworks such as scikit-learn, XGBoost, LightGBM, CatBoost, Optuna, Hyperopt, Ray, and few more.

The design and simplicity of PyCaret are inspired by the emerging role of citizen data scientists, a term first used by Gartner. Citizen Data Scientists are power users who can perform both simple and moderately sophisticated analytical tasks that would previously have required more technical expertise. PyCaret was inspired by the caret library in R programming language.

# 🚀 Installation

## 🌐 Option 1: Install via PyPi
PyCaret is tested and supported on 64-bit systems with:
- Python 3.10, 3.11, 3.12 and 3.13
- Ubuntu 16.04 or later
- Windows 7 or later

You can install PyCaret with Python's pip package manager:

```python
# install pycaret
pip install pycaret-core
```

PyCaret's default installation will not install all the optional dependencies automatically. Depending on the use case, you may be interested in one or more extras:

```python
# install analysis extras
pip install pycaret-core[analysis]

# models extras
pip install pycaret-core[models]

# install tuner extras
pip install pycaret-core[tuner]

# install mlops extras
pip install pycaret-core[mlops]

# install parallel extras
pip install pycaret-core[parallel]

# install test extras
pip install pycaret-core[test]

# install dev extras
pip install pycaret-core[dev]

##

# install multiple extras together
pip install pycaret-core[analysis,models]
```

If you want to install everything including all the optional dependencies:

```python
# install full version
pip install pycaret-core[full]
```
## 📄 Option 2: Build from Source
Install the development version of the library directly from the source. The API may be unstable. It is not recommended for production use.

```python
pip install git+https://github.com/sktime/pycaret.git --upgrade
```

## 📦 Option 3: Docker
Docker creates virtual environments with containers that keep a PyCaret installation separate from the rest of the system. PyCaret docker comes pre-installed with a Jupyter notebook. It can share resources with its host machine (access directories, use the GPU, connect to the Internet, etc.). The PyCaret Docker images are always tested for the latest major releases.

```python
# default version
docker run -p 8888:8888 pycaret/slim

# full version
docker run -p 8888:8888 pycaret/full
```

## 🏃‍♂️ Quickstart

### 1. Functional API
```python
# Classification Functional API Example

# loading sample dataset
from pycaret.datasets import get_data
data = get_data('juice')

# init setup
from pycaret.classification import *
s = setup(data, target = 'Purchase', session_id = 123)

# model training and selection
best = compare_models()

# evaluate trained model
evaluate_model(best)

# predict on hold-out/test set
pred_holdout = predict_model(best)

# predict on new data
new_data = data.copy().drop('Purchase', axis = 1)
predictions = predict_model(best, data = new_data)

# save model
save_model(best, 'best_pipeline')
```

### 2. OOP API

```python
# Classification OOP API Example

# loading sample dataset
from pycaret.datasets import get_data
data = get_data('juice')

# init setup
from pycaret.classification import ClassificationExperiment
s = ClassificationExperiment()
s.setup(data, target = 'Purchase', session_id = 123)

# model training and selection
best = s.compare_models()

# evaluate trained model
s.evaluate_model(best)

# predict on hold-out/test set
pred_holdout = s.predict_model(best)

# predict on new data
new_data = data.copy().drop('Purchase', axis = 1)
predictions = s.predict_model(best, data = new_data)

# save model
s.save_model(best, 'best_pipeline')
```


## 📁 Modules
<div align="center">

## **Classification**

  Functional API           |  OOP API
:-------------------------:|:-------------------------:
![](docs/images/classification_functional.png)  | ![](docs/images/classification_OOP.png)

## **Regression**

  Functional API           |  OOP API
:-------------------------:|:-------------------------:
![](docs/images/regression_functional.png)  | ![](docs/images/regression_OOP.png)

## **Time Series**

  Functional API           |  OOP API
:-------------------------:|:-------------------------:
![](docs/images/time_series_functional.png)  | ![](docs/images/time_series_OOP.png)

## **Clustering**

  Functional API           |  OOP API
:-------------------------:|:-------------------------:
![](docs/images/clustering_functional.png)  | ![](docs/images/clustering_OOP.png)

## **Anomaly Detection**

  Functional API           |  OOP API
:-------------------------:|:-------------------------:
![](docs/images/anomaly_functional.png)  | ![](docs/images/anomaly_OOP.png)

<div align="left">

# 👥 Who should use PyCaret?
PyCaret is an open source library that anybody can use. In our view the ideal target audience of PyCaret is: <br />

- Experienced Data Scientists who want to increase productivity.
- Citizen Data Scientists who prefer a low code machine learning solution.
- Data Science Professionals who want to build rapid prototypes.
- Data Science and Machine Learning students and enthusiasts.

# 🎮 Training on GPUs
To train models on the GPU, simply pass use_gpu = True in the setup function. There is no change in the use of the API; however, in some cases, additional libraries have to be installed. The following models can be trained on GPUs:

- Extreme Gradient Boosting
- CatBoost
- Light Gradient Boosting Machine requires [GPU installation](https://lightgbm.readthedocs.io/en/latest/GPU-Tutorial.html)
- Logistic Regression, Ridge Classifier, Random Forest, K Neighbors Classifier, K Neighbors Regressor, Support Vector Machine, Linear Regression, Ridge Regression, Lasso Regression requires [cuML >= 0.15](https://github.com/rapidsai/cuml)

# 🖥️ PyCaret Intel sklearnex support
You can apply [Intel optimizations](https://github.com/intel/scikit-learn-intelex) for machine learning algorithms and speed up your workflow. To train models with Intel optimizations use `sklearnex` engine. There is no change in the use of the API, however, installation of Intel sklearnex is required:

```python
pip install scikit-learn-intelex
```

# 🤝 Contributors
<a href="https://github.com/sktime/pycaret/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=sktime/pycaret" width=600/>
</a>

# 📝 License
PyCaret is completely free and open-source and licensed under the [MIT](https://github.com/sktime/pycaret/blob/main/LICENSE) license.

# ℹ️ More Information

| Important Links              |            Description                                       |
| -------------------------- | -------------------------------------------------------------- |
| :loudspeaker: **[Discord]**        | Discord community and community discussions |
| :star: **[Tutorials]**        | Tutorials developed and maintained by core developers       |
| :books: **[Documentation]**      | API docs                              |
| :tv: **[Videos]**            | Video resources             |
| ✈️ **[Cheat sheet]**            | Community Cheat sheet            |
| :hammer_and_wrench: **[Release Notes]**          | Release Notes          |

[Tutorials]: https://py-caret.readthedocs.io/en/latest/tutorials.html
[Documentation]: https://pycaret.gitbook.io/docs/
[Videos]: https://pycaret.gitbook.io/docs/learn-pycaret/videos
[Cheat sheet]: https://pycaret.gitbook.io/docs/learn-pycaret/cheat-sheet
[Discord]: https://discord.com/invite/54ACzaFsn7
[Release Notes]: https://github.com/sktime/pycaret/releases
