Classification hiérarchique
Classification hiérarchique
La classification hiérarchique ascendante est un algorithme de classification, qui commence par créer autant de classes que d'observations, puis agrège les observations étape par étape, afin de créer des classes de plus en plus grosses. La classification hiérarchique descendante, elle commence par créer une classe contenant toutes les observations, et la scinde en plusieurs classes à chaque itération. On utilise plus généralement la classification hiérarchique ascendante.
Mesure de distance
La mesure de distance entre les classes utilisée par la classification hiérarchique varie. Parmi les choix possibles, on trouve :
la mesure 'single linkage' par exemple, qui prend la distance minimale entre deux points des classes C1 et C2 :

la mesure 'complete linkage', qui prend la distance maximale entre deux points des classes C1 et C2 :
la mesure 'average linkage', qui calcule la moyenne des distances entre deux points des classes C1 et C2 :

la mesure 'centroid linkage', qui calcule la distance entre les centres de gravité des classes :
la mesure de Ward, qui calcule l'augmentation relative de la variance :

En général, c'est la mesure de Ward (ou critère de Ward) qui donne les résultats les plus satisfaisants.
Dendrogramme
L'application de cet algorithme permet de produire un dendrogramme, diagramme représentant les embrenchements entre les classes. En abscisse, on trouve les observations, et, en ordonnée, les distances inter-classes.
Ci-dessous, un exemple de dendrogramme. On sectionne le dendrogramme horizontalement pour déterminer le nombre de classes qu'on choisira de garder dans notre modèle, en essayant de choisir pour notre section la marche la plus importante. Ici, on peut par exemple choisir de garder 10 classes.

Exemple d'exécution
Vous trouverez ci-dessous une exécution pas-à-pas de l'algorithme de classification hiérarchique ascendante, avec critère de Ward.
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.