top of page

K-Moyennes

K-Moyennes

L'algorithme des K-Moyennes (ou K-Means en anglais) est un algorithme de classification. L'hyperparamètre K prend pour valeur le nombre de classes recherchées par l'algorithme. La première étape de l'algorithme des K-Moyennes est la création de K points aléatoires, qui joueront le rôle d'attributeurs de classe. En effet, chaque observation se voit ensuite attribuée la classe représentée par le point (parmi les K), qui est le plus proche de cette observation. Ensuite, les centres de gravité des classes sont calculés et jouent à leur tour le rôle d'attributeurs de classes. On réitère ensuite les opérations jusqu'à ce que les centres de gravité soient les mêmes d'une itération sur l'autre.


Mesure de distance


L'algorithme nécessite une mesure de distance entre les observations. Une mesure de distance couramment utilisée est la distance euclidienne :

Mesure de distance sur un espace des observations de dimension n
Mesure de distance sur un espace des observations de dimension n

Le calcul de la distance euclidienne se fait facilement avec la fonction norm() du module numpy.linalg de Python :


Centre de gravité


Pour calculer les centres de gravité des classes, à chaque itération, on calcule la moyenne des vecteurs contenant les points de chaque classe, à l'aide de la fonction Python mean().


Voici le code permettant de calculer d'abord le vecteur 'pp_croix_idx', qui contient les indices des classes de chaque observation. La matrice 'distances' contient les distances entre les observations et les croix attributrices de classes.

Puis le code permettant de calculer les centres de gravité des classes, dans un problème à trois classes.


Exemple d'exécution


Vous trouverez ci-dessous une exécution pas-à-pas de l'algorithme des K-Moyennes.



Voir aussi : all(), any(), append(), count(), enumerate(), extend(), filter(), float() format() input(), int(), isdigit(), isinstance(), items(), join(), endswith(), list(), map(), max(), mean(), min(), pop(), range(), len(), startswith(), zip(), type(), get(), symmetric_difference(), keys(), difference()


Numpy : arange(), array(), delete(), hsplit(), hstack(), linspace(), logical_and(), logical_or(), polyfit()


Pandas : concat(), concatenate(), describe(), dict(), drop_duplicates(), dropna(), fillna(), from_dict(), groupby(), head(), iloc, info(), insert(), isin(), melt(), merge(), pivot_table(), read_csv(), read_excel(), rename(), where()


Machine Learning : F1-Score, Précision, Rappel, Normalisation, Courbe d’apprentissage, Les résidus, Régression VS classification, Mean Absolute Error (MAE), Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Accuracy, L’astuce du noyau, Bases d’apprentissage et de test, Classes linéairement séparables, Apprentissage supervisé VS non-supervisé, Coefficient de détermination R2, Validation croisée


N'hésitez pas à consulter nos formations sur cette page.https://www.expertpython.fr/lexique-python


Glossaire pour apprendre à coder sur Python

Apprenez à coder sur Python

avec des experts

Notre organisme de formation spécialisé dans le langage Python et la Data Science forme les débutants et perfectionne les experts sur ce langage informatique. Pourquoi pas vous?

Des questions?

Contact Expert Python

Un formateur Python vous répond très vite

bottom of page