J'ai besoin d'utiliser des variables binaires (valeurs 0 et 1) dans k-means. Mais k-means ne fonctionne qu'avec des variables continues. Je sais que certaines personnes utilisent encore ces variables binaires dans k-means en ignorant le fait que k-means n'est conçu que pour des variables continues. C'est inacceptable pour moi.
Des questions:
- Alors, quelle est la manière statistiquement / mathématiquement correcte d'utiliser des variables binaires dans le clustering k-means / hiérarchique?
- Comment implémenter la solution en SAS / R?
r
clustering
binary-data
k-means
mixed-type-data
GeorgeOfTheRF
la source
la source
Réponses:
Vous avez raison de dire que le clustering k-means ne doit pas être effectué avec des données de types mixtes. Étant donné que k-means est essentiellement un algorithme de recherche simple pour trouver une partition qui minimise les distances euclidiennes au sein d'un cluster entre les observations groupées et le centroïde du cluster, il ne doit être utilisé qu'avec des données où les distances euclidiennes au carré seraient significatives.
Lorsque vos données sont constituées de variables de types mixtes, vous devez utiliser la distance de Gower. Utilisateur CV @ttnphns a un bon aperçu de la distance de Gower ici . Essentiellement, vous calculez tour à tour une matrice de distance pour vos lignes pour chaque variable, en utilisant un type de distance qui convient à ce type de variable (par exemple, Euclidien pour les données continues, etc.); la distance finale de la ligne à est la moyenne (éventuellement pondérée) des distances pour chaque variable. Une chose à savoir est que la distance de Gower n'est pas réellement une métrique . Néanmoins, avec des données mitigées, la distance de Gower est largement le seul jeu en ville. i ′je je′
À ce stade, vous pouvez utiliser n'importe quelle méthode de clustering qui peut fonctionner sur une matrice de distance au lieu d'avoir besoin de la matrice de données d'origine. (Notez que k-means a besoin de ce dernier.) Les choix les plus populaires sont le partitionnement autour des médoïdes (PAM, qui est essentiellement le même que k-means, mais utilise l'observation la plus centrale plutôt que le centroïde), diverses approches de regroupement hiérarchique (par exemple , médiane, liaison simple et liaison complète; avec le clustering hiérarchique, vous devrez décider où `` couper l'arborescence '' pour obtenir les affectations finales du cluster), et DBSCAN qui permet des formes de cluster beaucoup plus flexibles.
Voici une
R
démo simple (nb, il y a en fait 3 clusters, mais les données ressemblent surtout à 2 clusters appropriés):Nous pouvons commencer par rechercher sur différents nombres de clusters avec PAM:
Ces résultats peuvent être comparés aux résultats du clustering hiérarchique:
La méthode médiane suggère 2 (peut-être 3) grappes, le single ne supporte que 2, mais la méthode complète pourrait suggérer 2, 3 ou 4 à mon œil.
Enfin, nous pouvons essayer DBSCAN. Cela nécessite de spécifier deux paramètres: eps, la `` distance d'accessibilité '' (à quelle distance deux observations doivent être reliées ensemble) et minPts (le nombre minimum de points qui doivent être connectés les uns aux autres avant de vouloir les appeler un 'grappe'). Une règle de base pour minPts est d'utiliser une de plus que le nombre de dimensions (dans notre cas 3 + 1 = 4), mais avoir un nombre trop petit n'est pas recommandé. La valeur par défaut pour
dbscan
est 5; nous nous en tiendrons à cela. Une façon de penser à la distance d'accessibilité est de voir quel pourcentage des distances est inférieur à une valeur donnée. Nous pouvons le faire en examinant la distribution des distances:Les distances elles-mêmes semblent se regrouper en groupes visuellement perceptibles de «plus près» et «plus loin». Une valeur de 0,3 semble faire la distinction la plus nette entre les deux groupes de distances. Pour explorer la sensibilité de la sortie à différents choix d'eps, nous pouvons également essayer .2 et .4:
L'utilisation
eps=.3
donne une solution très propre, qui (au moins qualitativement) est en accord avec ce que nous avons vu des autres méthodes ci-dessus.Puisqu'il n'y a pas de cluster 1 significatif , nous devons faire attention d'essayer de faire correspondre les observations qui sont appelées `` cluster 1 '' à partir de différents clusters. Au lieu de cela, nous pouvons former des tableaux et si la plupart des observations appelées «cluster 1» dans un ajustement sont appelées «cluster 2» dans un autre, nous verrions que les résultats sont toujours substantiellement similaires. Dans notre cas, les différents clusters sont pour la plupart très stables et mettent à chaque fois les mêmes observations dans les mêmes clusters; seul le clustering hiérarchique de liaison complet diffère:
Bien sûr, rien ne garantit qu'une analyse de cluster récupérera les véritables clusters latents dans vos données. L'absence des véritables étiquettes de cluster (qui seraient disponibles, par exemple, dans une situation de régression logistique) signifie qu'une énorme quantité d'informations n'est pas disponible. Même avec de très grands ensembles de données, les clusters peuvent ne pas être suffisamment bien séparés pour être parfaitement récupérables. Dans notre cas, puisque nous connaissons la véritable appartenance à un cluster, nous pouvons comparer cela à la sortie pour voir dans quelle mesure cela a fonctionné. Comme je l'ai noté ci-dessus, il y a en fait 3 clusters latents, mais les données donnent plutôt l'apparence de 2 clusters:
la source
median method suggests 2 (possibly 3) clusters, the single only supports 2, but the complete method could suggest 2, 3 or 4
.. comment arrivez-vous à cela? en utilisant une hauteur de 0,3?Regardez cet article de Finch, http://www.jds-online.com/files/JDS-192.pdf . Il décrit à la fois pourquoi l'application de méthodes continues aux données binaires peut regrouper les données de manière inexacte et, plus important encore, quels sont certains choix dans les fonctions de distance appropriées. Il ne explique pas comment regrouper avec k-means, mais plutôt comment regrouper correctement les données binaires en utilisant des métriques non euclidiennes et une méthode hiérarchique comme Ward.
la source