pyclustering


Namepyclustering JSON
Version 0.10.1.2 PyPI version JSON
download
home_pagehttps://github.com/annoviko/pyclustering
Summarypyclustring is a python data mining library
upload_time2020-11-25 22:41:20
maintainer
docs_urlNone
authorAndrei Novikov
requires_python>=3.6
licenseBSD-3-Clause
keywords pyclustering data-mining clustering cluster-analysis machine-learning neural-network oscillatory-network
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            |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"
}
        
Elapsed time: 1.87736s