fuzzy-c-means
is a Python module implementing the Fuzzy C-means clustering algorithm.
the fuzzy-c-means
package is available in PyPI. to install, simply type the following command:
pip install fuzzy-c-means
simple example of use the fuzzy-c-means
to cluster a dataset in two groups:
%matplotlib inline
import numpy as np
from fcmeans import FCM
from matplotlib import pyplot as plt
n_samples = 3000
X = np.concatenate((
np.random.normal((-2, -2), size=(n_samples, 2)),
np.random.normal((2, 2), size=(n_samples, 2))
))
fcm = FCM(n_clusters=2)
fcm.fit(X)
# outputs
fcm_centers = fcm.centers
fcm_labels = fcm.predict(X)
# plot result
f, axes = plt.subplots(1, 2, figsize=(11,5))
axes[0].scatter(X[:,0], X[:,1], alpha=.1)
axes[1].scatter(X[:,0], X[:,1], c=fcm_labels, alpha=.1)
axes[1].scatter(fcm_centers[:,0], fcm_centers[:,1], marker="+", s=500, c='w')
plt.savefig('images/basic-clustering-output.jpg')
plt.show()
to more examples, see the examples/ folder.
if you use fuzzy-c-means
package in your paper, please cite it in your publication.
@software{dias2019fuzzy,
author = {Madson Luiz Dantas Dias},
title = {fuzzy-c-means: An implementation of Fuzzy $C$-means clustering algorithm.},
month = may,
year = 2019,
publisher = {Zenodo},
doi = {10.5281/zenodo.3066222},
url = {https://git.io/fuzzy-c-means}
}
this project is open for contributions. here are some of the ways for you to contribute:
- bug reports/fix
- features requests
- use-case demonstrations
to make a contribution, just fork this repository, push the changes in your fork, open up an issue, and make a pull request!