Une normalisation moyenne et une mise à l'échelle des fonctionnalités sont-elles nécessaires pour la classification en k-means?

Réponses:

63

Si vos variables sont d'unités incomparables (par exemple, la taille en cm et le poids en kg), alors vous devriez normaliser les variables, bien sûr. Même si les variables ont les mêmes unités mais montrent des variances assez différentes, il est toujours judicieux de normaliser avant K-moyennes. Vous voyez, le cluster K-means est "isotrope" dans toutes les directions de l'espace et a donc tendance à produire des clusters plus ou moins ronds (plutôt qu'allongés). Dans cette situation, laisser les variances inégales équivaut à accorder plus de poids aux variables de variance plus faible, de sorte que les grappes ont tendance à être séparées en fonction de variables présentant une variance plus grande.

entrez la description de l'image ici

Il est également intéressant de rappeler que les résultats de la mise en cluster à moyennes moyennes sont potentiellement sensibles à l'ordre des objets dans l'ensemble de données . Une pratique justifiée consisterait à exécuter l'analyse plusieurs fois, en randomisant l'ordre des objets; puis faites la moyenne des centres de grappes de ces exécutions et entrez-les en tant que centres initiaux pour une dernière analyse.1

Voici un raisonnement général sur la question de la normalisation des fonctionnalités dans les analyses en grappes ou autres analyses multivariées.


1 Plus précisément, (1) certaines méthodes d’initialisation des centres sont sensibles à l’ordre des cas; (2) même lorsque la méthode d'initialisation n'est pas sensible, les résultats peuvent parfois dépendre de l'ordre dans lequel les centres initiaux sont introduits dans le programme (en particulier, lorsqu'il y a des distances égales dans les données); (3) la version dite moyenne courante de l’algorithme k-means est naturellement sensible à l’ordre des cas (dans cette version - qui n’est pas souvent utilisée à part peut-être le clustering en ligne - le recalcul des centroïdes a lieu après que chaque cas individuel a été réassigné à un autre cluster).

tnphns
la source
2
La randomisation, le re-running, la moyenne et le run final est un très bon conseil. Merci
pedrosaurio
1
Comment k-means serait-il sensible à la commande?
SmallChess
1
@StudentT, j'ai ajouté une note de bas de page pour cela. Merci.
dimanche
1
@ttnphns Comment déterminer quantitativement que les variables ont des "variances assez différentes"?
Herman Toothrot
1
@camillejr, veuillez commencer par vérifier Q: stats.stackexchange.com/q/418427/3277 .
ttnphns
4

Cela dépend de vos données, je suppose. Si vous souhaitez que les tendances de vos données soient regroupées indépendamment de leur ampleur, vous devriez vous centrer. par exemple. Supposons que vous avez un profil d’expression génique et que vous souhaitez connaître les tendances en matière d’expression génique. Sans un centrage moyen, vos gènes de faible expression se regrouperont et s’éloigneront des gènes de forte expression, quelles que soient les tendances. Le centrage permet de regrouper des gènes (à la fois haut et bas exprimés) avec des modèles d'expression similaires

Nightwriter
la source
En fait, je compare différentes caractéristiques qui ont leur propre échelle. Par exemple, je compare le contenu de GC qui varie de 0,3 à 0,5 environ, ce qui peut paraître minime, mais la différence est assez importante. certaines autres caractéristiques ont des plages plus étendues, d'autres de très petites échelles.
pedrosaurio
Alors, vous regroupez différents facteurs? Pourrait peut-être utiliser un peu de poids ou de transformation des valeurs.
Nightwriter
Non, je compare toutes les variables continues
pedrosaurio