<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 Downloads](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)
- [IDSD](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/IDSD.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 sphinx==8.1.3
python -m pip install sphinx-rtd-theme==3.0.2
python -m pip install sphinx-autodoc-typehints==2.5.0
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.
## Citation
If you use `subgroups` library in a scientific publication, please cite the following paper:
- BibTeX format:
```
@article{LOPEZMARTINEZCARRASCO2024101895,
title = {Subgroups: A Python library for Subgroup Discovery},
journal = {SoftwareX},
volume = {28},
pages = {101895},
year = {2024},
issn = {2352-7110},
doi = {https://doi.org/10.1016/j.softx.2024.101895},
url = {https://www.sciencedirect.com/science/article/pii/S2352711024002656},
author = {Antonio Lopez-Martinez-Carrasco and Jose M. Juarez and Manuel Campos and Francisco Mora-Caselles},
keywords = {Machine learning, Data mining, Subgroup Discovery, Python}
}
```
- RIS format:
```
TY - JOUR
T1 - Subgroups: A Python library for Subgroup Discovery
AU - Lopez-Martinez-Carrasco, Antonio
AU - Juarez, Jose M.
AU - Campos, Manuel
AU - Mora-Caselles, Francisco
JO - SoftwareX
VL - 28
SP - 101895
PY - 2024
DA - 2024/12/01/
SN - 2352-7110
DO - https://doi.org/10.1016/j.softx.2024.101895
UR - https://www.sciencedirect.com/science/article/pii/S2352711024002656
KW - Machine learning
KW - Data mining
KW - Subgroup Discovery
KW - Python
ER -
```
- Plain text:
```
Antonio Lopez-Martinez-Carrasco, Jose M. Juarez, Manuel Campos, Francisco Mora-Caselles,
Subgroups: A Python library for Subgroup Discovery,
SoftwareX,
Volume 28,
2024,
101895,
ISSN 2352-7110,
https://doi.org/10.1016/j.softx.2024.101895.
(https://www.sciencedirect.com/science/article/pii/S2352711024002656)
Keywords: Machine learning; Data mining; Subgroup Discovery; Python
```
Raw data
{
"_id": null,
"home_page": "https://github.com/antoniolopezmc/subgroups",
"name": "subgroups",
"maintainer": "Antonio L\u00f3pez Mart\u00ednez-Carrasco",
"docs_url": null,
"requires_python": ">=3.11.0",
"maintainer_email": "antoniolopezmc1995@gmail.com",
"keywords": "python, data-science, machine-learning, data-analysis, subgroups, subgroup-discovery",
"author": "Antonio L\u00f3pez Mart\u00ednez-Carrasco",
"author_email": "antoniolopezmc1995@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/bf/47/3686d89a67fd4551aba1ad789755da79a499048c7ab9820d63d3644e8855/subgroups-0.1.9.tar.gz",
"platform": "any",
"description": "<p align=\"center\"><img alt=\"subgroups logo\" src=\"https://github.com/antoniolopezmc/subgroups/blob/master/docs/source/images/logo_small.png?raw=true\"></p>\r\n\r\n-----------------\r\n\r\n# subgroups - A Python library for Subgroup Discovery\r\n\r\n| | |\r\n|---------------|---|\r\n| **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) |\r\n| **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)|\r\n| **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 Downloads](https://img.shields.io/pepy/dt/subgroups) [![Documentation](https://img.shields.io/badge/Documentation-green?style=flat)](https://www.um.es/subgroups/)|\r\n\r\n## What is it?\r\n\r\n`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.\r\n\r\n## Quick install\r\n\r\nThe easiest way to obtain this library is from either [PyPI](https://pypi.org/) (the Python Package Index) or [Conda](https://docs.conda.io/).\r\n\r\n### PyPI\r\n\r\nFor that, you can [view and download the package from its PyPI page](https://pypi.org/project/subgroups/) or directly install it by executing:\r\n\r\n```shell\r\npip install subgroups\r\n```\r\n\r\n### Conda\r\n\r\nFor 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:\r\n\r\n```shell\r\nconda install -c conda-forge subgroups\r\n```\r\n\r\n## Testing\r\n\r\nAfter installing the library, a collection of tests can be launched by executing:\r\n\r\n```python\r\nimport subgroups.tests as st\r\nst.run_all_tests()\r\n```\r\n\r\nThese tests verify that the library is correctly installed and that all components, algorithms and features are properly working.\r\n\r\n## Installing from source\r\n\r\nThe source code (latest development) is currently hosted on: https://github.com/antoniolopezmc/subgroups\r\n\r\nTherefore, you need first to clone the repository:\r\n\r\n```shell\r\ngit clone https://github.com/antoniolopezmc/subgroups.git\r\ncd subgroups\r\n```\r\n\r\nAfter that, the library can be installed in *production mode* or in *develop mode*.\r\n\r\n### Production mode\r\n\r\n```shell\r\nmake install_prod\r\n```\r\n\r\nor\r\n\r\n```shell\r\npython -m pip install ./\r\n```\r\n\r\nor\r\n\r\n```shell\r\npip install ./\r\n```\r\n\r\nThis mode installs the library as normal, copying it to the standard Python site-packages directory.\r\n\r\n### Develop mode\r\n\r\n```shell\r\nmake install_dev\r\n```\r\n\r\nor\r\n\r\n```shell\r\npython -m pip install -e ./\r\n```\r\n\r\nor\r\n\r\n```shell\r\npip install -e ./\r\n```\r\n\r\nThis 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.\r\n\r\n## Example of use of the algorithms\r\n\r\nAn example of use of each algorithm implemented in `subgroups` python library can be found in the `examples/algorithms` folder:\r\n\r\n- [SDMap](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/SDMap.ipynb)\r\n- [SDMap*](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/SDMapStar.ipynb)\r\n- [VLSD](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/VLSD.ipynb)\r\n- [BSD-CBSD-CPBSD](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/BSD-CBSD-CPBSD.ipynb)\r\n- [QFinder](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/QFinder.ipynb)\r\n- [IDSD](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/IDSD.ipynb)\r\n- [GMSL](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/GMSL.ipynb)\r\n- [DSLM](https://github.com/antoniolopezmc/subgroups/blob/master/examples/algorithms/DSLM.ipynb)\r\n\r\n## Documentation\r\n\r\nThe official documentation is hosted on https://www.um.es/subgroups/\r\n\r\nAdditionally, 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:\r\n\r\n```shell\r\ncd docs\r\nmake build\r\n```\r\n\r\nor\r\n\r\n```shell\r\ncd docs\r\npython clean.py source/project_files build\r\npython -m pip install sphinx==8.1.3\r\npython -m pip install sphinx-rtd-theme==3.0.2\r\npython -m pip install sphinx-autodoc-typehints==2.5.0\r\nsphinx-apidoc -f -T -M -o source/project_files ../src/subgroups\r\nsphinx-build -M html source build\r\n```\r\n\r\nThe generated documentation will be located in the `build` subfolder.\r\n\r\n## Citation\r\n\r\nIf you use `subgroups` library in a scientific publication, please cite the following paper:\r\n\r\n- BibTeX format:\r\n\r\n```\r\n@article{LOPEZMARTINEZCARRASCO2024101895,\r\ntitle = {Subgroups: A Python library for Subgroup Discovery},\r\njournal = {SoftwareX},\r\nvolume = {28},\r\npages = {101895},\r\nyear = {2024},\r\nissn = {2352-7110},\r\ndoi = {https://doi.org/10.1016/j.softx.2024.101895},\r\nurl = {https://www.sciencedirect.com/science/article/pii/S2352711024002656},\r\nauthor = {Antonio Lopez-Martinez-Carrasco and Jose M. Juarez and Manuel Campos and Francisco Mora-Caselles},\r\nkeywords = {Machine learning, Data mining, Subgroup Discovery, Python}\r\n}\r\n```\r\n\r\n- RIS format:\r\n\r\n```\r\nTY - JOUR\r\nT1 - Subgroups: A Python library for Subgroup Discovery\r\nAU - Lopez-Martinez-Carrasco, Antonio\r\nAU - Juarez, Jose M.\r\nAU - Campos, Manuel\r\nAU - Mora-Caselles, Francisco\r\nJO - SoftwareX\r\nVL - 28\r\nSP - 101895\r\nPY - 2024\r\nDA - 2024/12/01/\r\nSN - 2352-7110\r\nDO - https://doi.org/10.1016/j.softx.2024.101895\r\nUR - https://www.sciencedirect.com/science/article/pii/S2352711024002656\r\nKW - Machine learning\r\nKW - Data mining\r\nKW - Subgroup Discovery\r\nKW - Python\r\nER - \r\n```\r\n\r\n- Plain text:\r\n\r\n```\r\nAntonio Lopez-Martinez-Carrasco, Jose M. Juarez, Manuel Campos, Francisco Mora-Caselles,\r\nSubgroups: A Python library for Subgroup Discovery,\r\nSoftwareX,\r\nVolume 28,\r\n2024,\r\n101895,\r\nISSN 2352-7110,\r\nhttps://doi.org/10.1016/j.softx.2024.101895.\r\n(https://www.sciencedirect.com/science/article/pii/S2352711024002656)\r\nKeywords: Machine learning; Data mining; Subgroup Discovery; Python\r\n```\r\n",
"bugtrack_url": null,
"license": "BSD-4-Clause",
"summary": "subgroups is a python library which contains a collection of subgroup discovery algorithms and other data analysis utilities.",
"version": "0.1.9",
"project_urls": {
"Homepage": "https://github.com/antoniolopezmc/subgroups"
},
"split_keywords": [
"python",
" data-science",
" machine-learning",
" data-analysis",
" subgroups",
" subgroup-discovery"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9f7ec8290a39e00fc23046555e8aa6fdd2867f01f31a4a1a8c146718c3146494",
"md5": "53735eb8b5ab902dad835daff04c0197",
"sha256": "0f123ed67a149c3810631ea6dfa4e8980cc88a0a54fcf8e4363c89d5ddf2bae2"
},
"downloads": -1,
"filename": "subgroups-0.1.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "53735eb8b5ab902dad835daff04c0197",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11.0",
"size": 274342,
"upload_time": "2024-12-17T09:52:44",
"upload_time_iso_8601": "2024-12-17T09:52:44.319176Z",
"url": "https://files.pythonhosted.org/packages/9f/7e/c8290a39e00fc23046555e8aa6fdd2867f01f31a4a1a8c146718c3146494/subgroups-0.1.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bf473686d89a67fd4551aba1ad789755da79a499048c7ab9820d63d3644e8855",
"md5": "878b853e06beba5a5ad1236237eb15ba",
"sha256": "deb157c48d19a31ebce39c4f48bd2a54ec1f8f4eda2034642586dfa0e1cbe90d"
},
"downloads": -1,
"filename": "subgroups-0.1.9.tar.gz",
"has_sig": false,
"md5_digest": "878b853e06beba5a5ad1236237eb15ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11.0",
"size": 192667,
"upload_time": "2024-12-17T09:52:45",
"upload_time_iso_8601": "2024-12-17T09:52:45.595766Z",
"url": "https://files.pythonhosted.org/packages/bf/47/3686d89a67fd4551aba1ad789755da79a499048c7ab9820d63d3644e8855/subgroups-0.1.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-17 09:52:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "antoniolopezmc",
"github_project": "subgroups",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "subgroups"
}