L'une des méthodes de partitionnement diffus les plus largement utilisés est l'algorithme des C-moyennes (en anglais Fuzzy C-means).
Le partitionnement en C-moyennes a été développé par J. C. Dunn en 1973[2], et amélioré par James C. Bezdek en 1981[3].
L'algorithme de partitionnement en C-moyennes est très similaire à celui des K-moyennes :
- Fixer un nombre de groupes ;
- Attribuer des coefficients au hasard à chaque observation pour être dans les groupes ;
- Répéter les étapes suivantes jusqu'à la convergence de l'algorithme (c'est-à-dire que la variation des coefficients entre deux itérations ne dépasse pas le seuil de sensibilité
) :
- Calculer le centroïde de chaque groupe ;
- Pour chaque observation, calculer ses coefficients d'appartenance aux différents groupes.
Tout point
a un ensemble de coefficients correspondant aux degrés d'appartenance aux groupes. Ainsi, le coefficient d'appartenance au
ème groupe est noté
. Avec des C-moyennes, le centroïde (ou barycentre) d'un groupe est la moyenne de tous les points pondérés par leur degré d'appartenance au groupe, ou, mathématiquement :

où
est l'hyperparamètre qui contrôle le degré de diffusion du groupe. m est appelé paramètre de diffusion ou fuzzifier.
L'algorithme des C-moyennes tente de partitionner une collection finie de
éléments
en une collection de c groupes par rapport à un critère donné.
Étant donné un ensemble fini de données, l'algorithme renvoie une liste de
centres de groupe
et une matrice de partition
, où chaque élément
indique dans quelle mesure l'élément
appartient au groupe
.
Le C-moyennes vise à minimiser une fonction objectif :

où:

Le partitionnement en K-moyennes (en anglais K-means) tente également de minimiser la fonction objectif mentionnées ci-dessus. La fonction objectif des C-moyennes diffère de celle des K-moyennes par l'addition des valeurs d'appartenance
et le fuzzifier (paramètre de diffusion),
, avec
. Le fuzzifier
détermine le niveau de diffusion du groupe. Un grand
se traduit par des scores d'appartenance plus petits,
, et par conséquent, des groupes plus diffus. À la limite
, les scores d'appartenance,
, convergent vers 0 ou 1, ce qui implique un partitionnement net. L'algorithme minimise également la variance intra-groupe, mais présente les mêmes problèmes que les K-moyennes ; le minimum est un minimum local, et les résultats dépendent du choix initial des poids.