pyclugen is a Python implementation of the clugen algorithm for generating multidimensional clusters with arbitrary distributions. Each cluster is supported by a line segment, the position, orientation and length of which guide where the respective points are placed.
See the documentation and examples for more details.
Install from PyPI:
pip install --upgrade pip
pip install pyclugen
Or directly from GitHub:
pip install --upgrade pip
pip install git+https://github.com/clugen/pyclugen.git#egg=pyclugen
from pyclugen import clugen
import matplotlib.pyplot as plt
out2 = clugen(2, 4, 400, [1, 0], 0.4, [50, 10], 20, 1, 2)
plt.scatter(out2.points[:, 0], out2.points[:, 1], c=out2.clusters)
plt.show()
out3 = clugen(3, 5, 10000, [0.5, 0.5, 0.5], 0.2, [10, 10, 10], 10, 1, 2)
fig = plt.figure()
ax = fig.add_subplot(projection="3d")
ax.scatter(out3.points[:, 0], out3.points[:, 1], out3.points[:, 2], c=out3.clusters)
plt.show()
- CluGen.jl, a Julia implementation of the clugen algorithm.
- clugenr, an R implementation of the clugen algorithm.
- MOCluGen, a MATLAB/Octave implementation of the clugen algorithm.
If you use this software, please cite the following reference:
- Fachada, N. & de Andrade, D. (2023). Generating multidimensional clusters with support lines. Knowledge-Based Systems, 277, 110836. https://doi.org/10.1016/j.knosys.2023.110836 (arXiv preprint)