/fuzzy-c-means

A simple python implementation of Fuzzy C-means algorithm.

Primary LanguagePythonMIT LicenseMIT

fuzzy-c-means

GitHub PyPI GitHub commit activity GitHub last commit Downloads DOI

fuzzy-c-means is a Python module implementing the Fuzzy C-means clustering algorithm.

instalation

the fuzzy-c-means package is available in PyPI. to install, simply type the following command:

pip install fuzzy-c-means

basic clustering example

simple example of use the fuzzy-c-means to cluster a dataset in two groups:

importing libraries

%matplotlib inline
import numpy as np
from fcmeans import FCM
from matplotlib import pyplot as plt

creating artificial data set

n_samples = 3000

X = np.concatenate((
    np.random.normal((-2, -2), size=(n_samples, 2)),
    np.random.normal((2, 2), size=(n_samples, 2))
))

fitting the fuzzy-c-means

fcm = FCM(n_clusters=2)
fcm.fit(X)

showing results

# 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.

how to cite fuzzy-c-means package

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}
}

citations

contributing

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!

contributors