Last updated:
0 purchases
pyclustering 0.10.1.2
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:
# 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:
$ pip3 install pyclustering
Manual installation from official repository using Makefile:
# 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:
# 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:
Clone repository from: https://github.com/annoviko/pyclustering.git
Open folder pyclustering/ccore
Open Visual Studio project ccore.sln
Select solution platform: x86 or x64
Build pyclustering-shared project.
Add pyclustering folder to python path or install it using setup.py
# 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 [email protected].
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:
@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}
}
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.