Metadata-Version: 2.1
Name: subgroups
Version: 0.1.8
Summary: subgroups is a python library which contains a collection of subgroup discovery algorithms and other data analysis utilities.
Home-page: https://github.com/antoniolopezmc/subgroups
Author: Antonio López Martínez-Carrasco
Author-email: antoniolopezmc1995@gmail.com
Maintainer: Antonio López Martínez-Carrasco
Maintainer-email: antoniolopezmc1995@gmail.com
License: BSD-4-Clause
Keywords: python,data-science,machine-learning,data-analysis,subgroups,subgroup-discovery
Platform: any
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=2.0.3
Requires-Dist: bitarray>=2.7.6
Requires-Dist: statsmodels>=0.14.0

<p align="center"><img alt="subgroups logo" src="https://github.com/antoniolopezmc/subgroups/blob/master/docs/source/images/logo_small.png?raw=true"></p>

-----------------

# subgroups - A Python library for Subgroup Discovery

|               |   |
|---------------|---|
| **Tests** | [![Azure Pipelines - Tests](https://dev.azure.com/conda-forge/feedstock-builds/_apis/build/status/subgroups-feedstock?branchName=main)](https://dev.azure.com/conda-forge/feedstock-builds/_build/latest?definitionId=21954&branchName=main) |
| **Package** | [![PyPI - Version](https://img.shields.io/pypi/v/subgroups?label=PyPI)](https://pypi.org/project/subgroups/) [![Conda Version](https://img.shields.io/conda/vn/conda-forge/subgroups?label=Anaconda.org%20%7C%20conda-forge)](https://anaconda.org/conda-forge/subgroups)|
| **Metadata** | [![GitHub](https://img.shields.io/badge/GitHub-Latest%20development-blue?style=flat)](https://github.com/antoniolopezmc/subgroups) [![Author's webpage](https://img.shields.io/badge/Author's%20webpage-orange?style=flat)](https://webs.um.es/antoniolopezmc/) [![Python Version](https://img.shields.io/pypi/pyversions/subgroups)](https://www.python.org/) [![License](https://img.shields.io/pypi/l/subgroups?color=green)](https://github.com/antoniolopezmc/subgroups/blob/master/LICENSE) ![Total Downlods](https://img.shields.io/pepy/dt/subgroups) [![Documentation](https://img.shields.io/badge/Documentation-green?style=flat)](https://www.um.es/subgroups/)|

## What is it?

`subgroups` is a public, accessible and open-source python library created to work with the Subgroup Discovery (SD) technique. This library implements the necessary components related to the SD technique and contains a collection of SD algorithms and other data analysis utilities.

## Quick install

The easiest way to obtain this library is from either [PyPI](https://pypi.org/) (the Python Package Index) or [Conda](https://docs.conda.io/).

### PyPI

For that, you can [view and download the package from its PyPI page](https://pypi.org/project/subgroups/) or directly install it by executing:

```shell
pip install subgroups
```

### Conda

For that, you can [view and download the package from its Anaconda.org page (conda-forge channel)](https://anaconda.org/conda-forge/subgroups) or directly install it by executing:

```shell
conda install -c conda-forge subgroups
```

## Testing

After installing the library, a collection of tests can be launched by executing:

```python
import subgroups.tests as st
st.run_all_tests()
```

These tests verify that the library is correctly installed and that all components, algorithms and features are properly working.

## Installing from source

The source code (latest development) is currently hosted on: https://github.com/antoniolopezmc/subgroups

Therefore, you need first to clone the repository:

```shell
git clone https://github.com/antoniolopezmc/subgroups.git
cd subgroups
```

After that, the library can be installed in *production mode* or in *develop mode*.

### Production mode

```shell
make install_prod
```

or

```shell
python -m pip install ./
```

or

```shell
pip install ./
```

This mode installs the library as normal, copying it to the standard Python site-packages directory.

### Develop mode

```shell
make install_dev
```

or

```shell
python -m pip install -e ./
```

or

```shell
pip install -e ./
```

This mode installs the library in editable mode, creating a link in the standard Python site-packages directory to the downloaded project directory (the current directory). See the [pip_install documentation](https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-e) for further details.

## Example of use of the algorithms

An example of use of each algorithm implemented in `subgroups` python library can be found in the `examples/algorithms` folder:

- [SDMap](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/SDMap.ipynb)
- [SDMap*](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/SDMapStar.ipynb)
- [VLSD](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/VLSD.ipynb)
- [BSD-CBSD-CPBSD](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/BSD-CBSD-CPBSD.ipynb)
- [QFinder](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/QFinder.ipynb)
- [GMSL](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/GMSL.ipynb)
- [DSLM](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/DSLM.ipynb)

## Documentation

The official documentation is hosted on https://www.um.es/subgroups/

Additionally, the source code of the project contains a folder called `docs`, which includes the documentation of the library. This documentation can be also manually generated by executing:

```shell
cd docs
make build
```

or

```shell
cd docs
python clean.py source/project_files build
python -m pip install --upgrade sphinx
python -m pip install --upgrade sphinx-rtd-theme
python -m pip install --upgrade sphinx-autodoc-typehints
sphinx-apidoc -f -T -M -o source/project_files ../src/subgroups
sphinx-build -M html source build
```

The generated documentation will be located in the `build` subfolder.
