|JOSS|
PyClustering
============
**pyclustering** is a Python, C++ data mining library (clustering
algorithm, oscillatory networks, neural networks). The library provides
Python and C++ implementations (C++ pyclustering library) of each algorithm or
model. C++ pyclustering library is a part of pyclustering and supported for
Linux, Windows and MacOS operating systems.
Official repository: https://github.com/annoviko/pyclustering/
Documentation: https://pyclustering.github.io/docs/0.10.1/html/
Dependencies
============
**Required packages**: scipy, matplotlib, numpy, Pillow
**Python version**: >=3.6 (32-bit, 64-bit)
**C++ version**: >= 14 (32-bit, 64-bit)
Performance
===========
Each algorithm is implemented using Python and C/C++ language, if your platform is not supported then Python
implementation is used, otherwise C/C++. Implementation can be chosen by `ccore` flag (by default it is always
'True' and it means that C/C++ is used), for example:
.. code:: python
# As by default - C/C++ part of the library is used
xmeans_instance_1 = xmeans(data_points, start_centers, 20, ccore=True);
# The same - C/C++ part of the library is used by default
xmeans_instance_2 = xmeans(data_points, start_centers, 20);
# Switch off core - Python is used
xmeans_instance_3 = xmeans(data_points, start_centers, 20, ccore=False);
Installation
============
Installation using pip3 tool:
.. code:: bash
$ pip3 install pyclustering
Manual installation from official repository using Makefile:
.. code:: bash
# get sources of the pyclustering library, for example, from repository
$ mkdir pyclustering
$ cd pyclustering/
$ git clone https://github.com/annoviko/pyclustering.git .
# compile CCORE library (core of the pyclustering library).
$ cd ccore/
$ make ccore_64bit # build for 64-bit OS
# $ make ccore_32bit # build for 32-bit OS
# return to parent folder of the pyclustering library
$ cd ../
# install pyclustering library
$ python3 setup.py install
# optionally - test the library
$ python3 setup.py test
Manual installation using CMake:
.. code:: bash
# get sources of the pyclustering library, for example, from repository
$ mkdir pyclustering
$ cd pyclustering/
$ git clone https://github.com/annoviko/pyclustering.git .
# generate build files.
$ mkdir build
$ cmake ..
# build pyclustering-shared target depending on what was generated (Makefile or MSVC solution)
# if Makefile has been generated then
$ make pyclustering-shared
# return to parent folder of the pyclustering library
$ cd ../
# install pyclustering library
$ python3 setup.py install
# optionally - test the library
$ python3 setup.py test
Manual installation using Microsoft Visual Studio solution:
1. Clone repository from: https://github.com/annoviko/pyclustering.git
2. Open folder `pyclustering/ccore`
3. Open Visual Studio project `ccore.sln`
4. Select solution platform: `x86` or `x64`
5. Build `pyclustering-shared` project.
6. Add pyclustering folder to python path or install it using setup.py
.. code:: bash
# install pyclustering library
$ python3 setup.py install
# optionally - test the library
$ python3 setup.py test
Proposals, Questions, Bugs
==========================
In case of any questions, proposals or bugs related to the pyclustering
please contact to pyclustering@yandex.ru.
Issue tracker: https://github.com/annoviko/pyclustering/issues
Library Content
===============
**Clustering algorithms (module pyclustering.cluster):**
- **Agglomerative** (pyclustering.cluster.agglomerative);
- **BANG** (pyclustering.cluster.bang);
- **BIRCH** (pyclustering.cluster.birch);
- **BSAS** (pyclustering.cluster.bsas);
- **CLARANS** (pyclustering.cluster.clarans);
- **CLIQUE** (pyclustering.cluster.clique);
- **CURE** (pyclustering.cluster.cure);
- **DBSCAN** (pyclustering.cluster.dbscan);
- **Elbow** (pyclustering.cluster.elbow);
- **EMA** (pyclustering.cluster.ema);
- **Fuzzy C-Means** (pyclustering.cluster.fcm);
- **GA (Genetic Algorithm)** (pyclustering.cluster.ga);
- **G-Means** (pyclustering.cluster.gmeans);
- **HSyncNet** (pyclustering.cluster.hsyncnet);
- **K-Means** (pyclustering.cluster.kmeans);
- **K-Means++** (pyclustering.cluster.center_initializer);
- **K-Medians** (pyclustering.cluster.kmedians);
- **K-Medoids** (pyclustering.cluster.kmedoids);
- **MBSAS** (pyclustering.cluster.mbsas);
- **OPTICS** (pyclustering.cluster.optics);
- **ROCK** (pyclustering.cluster.rock);
- **Silhouette** (pyclustering.cluster.silhouette);
- **SOM-SC** (pyclustering.cluster.somsc);
- **SyncNet** (pyclustering.cluster.syncnet);
- **Sync-SOM** (pyclustering.cluster.syncsom);
- **TTSAS** (pyclustering.cluster.ttsas);
- **X-Means** (pyclustering.cluster.xmeans);
**Oscillatory networks and neural networks (module pyclustering.nnet):**
- **Oscillatory network based on Hodgkin-Huxley model** (pyclustering.nnet.hhn);
- **fSync: Oscillatory Network based on Landau-Stuart equation and Kuramoto model** (pyclustering.nnet.fsync);
- **Hysteresis Oscillatory Network** (pyclustering.nnet.hysteresis);
- **LEGION: Local Excitatory Global Inhibitory Oscillatory Network** (pyclustering.nnet.legion);
- **PCNN: Pulse-Coupled Neural Network** (pyclustering.nnet.pcnn);
- **SOM: Self-Organized Map** (pyclustering.nnet.som);
- **Sync: Oscillatory Network based on Kuramoto model** (pyclustering.nnet.sync);
- **SyncPR: Oscillatory Network based on Kuramoto model for pattern recognition** (pyclustering.nnet.syncpr);
- **SyncSegm: Oscillatory Network based on Kuramoto model for image segmentation** (pyclustering.nnet.syncsegm);
**Graph Coloring Algorithms (module pyclustering.gcolor):**
- **DSATUR** (pyclustering.gcolor.dsatur);
- **Hysteresis Oscillatory Network for graph coloring** (pyclustering.gcolor.hysteresis);
- **Sync: Oscillatory Network based on Kuramoto model for graph coloring** (pyclustering.gcolor.sync);
**Containers (module pyclustering.container):**
- **CF-Tree** (pyclustering.container.cftree);
- **KD-Tree** (pyclustering.container.kdtree);
Cite the Library
================
If you are using pyclustering library in a scientific paper, please, cite the library:
Novikov, A., 2019. PyClustering: Data Mining Library. Journal of Open Source Software, 4(36), p.1230. Available at: http://dx.doi.org/10.21105/joss.01230.
BibTeX entry:
.. code::
@article{Novikov2019,
doi = {10.21105/joss.01230},
url = {https://doi.org/10.21105/joss.01230},
year = 2019,
month = {apr},
publisher = {The Open Journal},
volume = {4},
number = {36},
pages = {1230},
author = {Andrei Novikov},
title = {{PyClustering}: Data Mining Library},
journal = {Journal of Open Source Software}
}
.. |JOSS| image:: http://joss.theoj.org/papers/10.21105/joss.01230/status.svg
:target: https://doi.org/10.21105/joss.01230
Raw data
{
"_id": null,
"home_page": "https://github.com/annoviko/pyclustering",
"name": "pyclustering",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "pyclustering data-mining clustering cluster-analysis machine-learning neural-network oscillatory-network",
"author": "Andrei Novikov",
"author_email": "pyclustering@yandex.ru",
"download_url": "https://files.pythonhosted.org/packages/4b/cf/6c1183d0c1e76df398d0808f78cabaedd87a1ca7548b9b03d51620ff55eb/pyclustering-0.10.1.2.tar.gz",
"platform": "",
"description": "|JOSS|\n\nPyClustering\n============\n\n**pyclustering** is a Python, C++ data mining library (clustering\nalgorithm, oscillatory networks, neural networks). The library provides\nPython and C++ implementations (C++ pyclustering library) of each algorithm or\nmodel. C++ pyclustering library is a part of pyclustering and supported for\nLinux, Windows and MacOS operating systems.\n\nOfficial repository: https://github.com/annoviko/pyclustering/\n\nDocumentation: https://pyclustering.github.io/docs/0.10.1/html/\n\n\nDependencies\n============\n\n**Required packages**: scipy, matplotlib, numpy, Pillow\n\n**Python version**: >=3.6 (32-bit, 64-bit)\n\n**C++ version**: >= 14 (32-bit, 64-bit)\n\n\nPerformance\n===========\n\nEach algorithm is implemented using Python and C/C++ language, if your platform is not supported then Python\nimplementation is used, otherwise C/C++. Implementation can be chosen by `ccore` flag (by default it is always\n'True' and it means that C/C++ is used), for example:\n\n.. code:: python\n\n # As by default - C/C++ part of the library is used\n xmeans_instance_1 = xmeans(data_points, start_centers, 20, ccore=True);\n\n # The same - C/C++ part of the library is used by default\n xmeans_instance_2 = xmeans(data_points, start_centers, 20);\n\n # Switch off core - Python is used\n xmeans_instance_3 = xmeans(data_points, start_centers, 20, ccore=False);\n\n\nInstallation\n============\n\nInstallation using pip3 tool:\n\n.. code:: bash\n\n $ pip3 install pyclustering\n\nManual installation from official repository using Makefile:\n\n.. code:: bash\n\n # get sources of the pyclustering library, for example, from repository\n $ mkdir pyclustering\n $ cd pyclustering/\n $ git clone https://github.com/annoviko/pyclustering.git .\n\n # compile CCORE library (core of the pyclustering library).\n $ cd ccore/\n $ make ccore_64bit # build for 64-bit OS\n\n # $ make ccore_32bit # build for 32-bit OS\n\n # return to parent folder of the pyclustering library\n $ cd ../\n\n # install pyclustering library\n $ python3 setup.py install\n\n # optionally - test the library\n $ python3 setup.py test\n\nManual installation using CMake:\n\n.. code:: bash\n\n # get sources of the pyclustering library, for example, from repository\n $ mkdir pyclustering\n $ cd pyclustering/\n $ git clone https://github.com/annoviko/pyclustering.git .\n\n # generate build files.\n $ mkdir build\n $ cmake ..\n\n # build pyclustering-shared target depending on what was generated (Makefile or MSVC solution)\n # if Makefile has been generated then\n $ make pyclustering-shared\n\n # return to parent folder of the pyclustering library\n $ cd ../\n\n # install pyclustering library\n $ python3 setup.py install\n\n # optionally - test the library\n $ python3 setup.py test\n\nManual installation using Microsoft Visual Studio solution:\n\n1. Clone repository from: https://github.com/annoviko/pyclustering.git\n2. Open folder `pyclustering/ccore`\n3. Open Visual Studio project `ccore.sln`\n4. Select solution platform: `x86` or `x64`\n5. Build `pyclustering-shared` project.\n6. Add pyclustering folder to python path or install it using setup.py\n\n.. code:: bash\n\n # install pyclustering library\n $ python3 setup.py install\n\n # optionally - test the library\n $ python3 setup.py test\n\n\nProposals, Questions, Bugs\n==========================\n\nIn case of any questions, proposals or bugs related to the pyclustering\nplease contact to pyclustering@yandex.ru.\n\nIssue tracker: https://github.com/annoviko/pyclustering/issues\n\n\nLibrary Content\n===============\n\n**Clustering algorithms (module pyclustering.cluster):** \n\n- **Agglomerative** (pyclustering.cluster.agglomerative);\n- **BANG** (pyclustering.cluster.bang);\n- **BIRCH** (pyclustering.cluster.birch);\n- **BSAS** (pyclustering.cluster.bsas);\n- **CLARANS** (pyclustering.cluster.clarans);\n- **CLIQUE** (pyclustering.cluster.clique);\n- **CURE** (pyclustering.cluster.cure);\n- **DBSCAN** (pyclustering.cluster.dbscan);\n- **Elbow** (pyclustering.cluster.elbow);\n- **EMA** (pyclustering.cluster.ema);\n- **Fuzzy C-Means** (pyclustering.cluster.fcm);\n- **GA (Genetic Algorithm)** (pyclustering.cluster.ga);\n- **G-Means** (pyclustering.cluster.gmeans);\n- **HSyncNet** (pyclustering.cluster.hsyncnet);\n- **K-Means** (pyclustering.cluster.kmeans);\n- **K-Means++** (pyclustering.cluster.center_initializer);\n- **K-Medians** (pyclustering.cluster.kmedians);\n- **K-Medoids** (pyclustering.cluster.kmedoids);\n- **MBSAS** (pyclustering.cluster.mbsas);\n- **OPTICS** (pyclustering.cluster.optics);\n- **ROCK** (pyclustering.cluster.rock);\n- **Silhouette** (pyclustering.cluster.silhouette);\n- **SOM-SC** (pyclustering.cluster.somsc);\n- **SyncNet** (pyclustering.cluster.syncnet);\n- **Sync-SOM** (pyclustering.cluster.syncsom);\n- **TTSAS** (pyclustering.cluster.ttsas);\n- **X-Means** (pyclustering.cluster.xmeans);\n\n\n**Oscillatory networks and neural networks (module pyclustering.nnet):**\n\n- **Oscillatory network based on Hodgkin-Huxley model** (pyclustering.nnet.hhn);\n- **fSync: Oscillatory Network based on Landau-Stuart equation and Kuramoto model** (pyclustering.nnet.fsync);\n- **Hysteresis Oscillatory Network** (pyclustering.nnet.hysteresis);\n- **LEGION: Local Excitatory Global Inhibitory Oscillatory Network** (pyclustering.nnet.legion);\n- **PCNN: Pulse-Coupled Neural Network** (pyclustering.nnet.pcnn);\n- **SOM: Self-Organized Map** (pyclustering.nnet.som);\n- **Sync: Oscillatory Network based on Kuramoto model** (pyclustering.nnet.sync);\n- **SyncPR: Oscillatory Network based on Kuramoto model for pattern recognition** (pyclustering.nnet.syncpr);\n- **SyncSegm: Oscillatory Network based on Kuramoto model for image segmentation** (pyclustering.nnet.syncsegm);\n\n**Graph Coloring Algorithms (module pyclustering.gcolor):**\n\n- **DSATUR** (pyclustering.gcolor.dsatur);\n- **Hysteresis Oscillatory Network for graph coloring** (pyclustering.gcolor.hysteresis);\n- **Sync: Oscillatory Network based on Kuramoto model for graph coloring** (pyclustering.gcolor.sync);\n\n**Containers (module pyclustering.container):**\n\n- **CF-Tree** (pyclustering.container.cftree);\n- **KD-Tree** (pyclustering.container.kdtree);\n\n\nCite the Library\n================\n\nIf you are using pyclustering library in a scientific paper, please, cite the library:\n\nNovikov, A., 2019. PyClustering: Data Mining Library. Journal of Open Source Software, 4(36), p.1230. Available at: http://dx.doi.org/10.21105/joss.01230.\n\nBibTeX entry:\n\n.. code::\n\n @article{Novikov2019,\n doi = {10.21105/joss.01230},\n url = {https://doi.org/10.21105/joss.01230},\n year = 2019,\n month = {apr},\n publisher = {The Open Journal},\n volume = {4},\n number = {36},\n pages = {1230},\n author = {Andrei Novikov},\n title = {{PyClustering}: Data Mining Library},\n journal = {Journal of Open Source Software}\n }\n\n\n\n.. |JOSS| image:: http://joss.theoj.org/papers/10.21105/joss.01230/status.svg\n :target: https://doi.org/10.21105/joss.01230",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "pyclustring is a python data mining library",
"version": "0.10.1.2",
"project_urls": {
"Bug Tracker": "https://github.com/annoviko/pyclustering/issues",
"Documentation": "https://pyclustering.github.io/docs/0.10.1/html/index.html",
"Homepage": "https://pyclustering.github.io/",
"Repository": "https://github.com/annoviko/pyclustering"
},
"split_keywords": [
"pyclustering",
"data-mining",
"clustering",
"cluster-analysis",
"machine-learning",
"neural-network",
"oscillatory-network"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4bcf6c1183d0c1e76df398d0808f78cabaedd87a1ca7548b9b03d51620ff55eb",
"md5": "8d585e39dd2a33ef691f2087a237f85d",
"sha256": "8a98fd299fcc1e21b7b7c963275162dd7194aa3d921aa66d313775597cf833d1"
},
"downloads": -1,
"filename": "pyclustering-0.10.1.2.tar.gz",
"has_sig": false,
"md5_digest": "8d585e39dd2a33ef691f2087a237f85d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 2575620,
"upload_time": "2020-11-25T22:41:20",
"upload_time_iso_8601": "2020-11-25T22:41:20.453951Z",
"url": "https://files.pythonhosted.org/packages/4b/cf/6c1183d0c1e76df398d0808f78cabaedd87a1ca7548b9b03d51620ff55eb/pyclustering-0.10.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-11-25 22:41:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "annoviko",
"github_project": "pyclustering",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"appveyor": true,
"lcname": "pyclustering"
}