Mise en cluster d'un jeu de données avec des variables à la fois discrètes et continues

33

J'ai un jeu de données X qui a 10 dimensions, dont 4 sont des valeurs discrètes. En fait, ces 4 variables discrètes sont ordinales, c'est-à-dire qu'une valeur plus élevée implique une sémantique plus élevée / meilleure.

2 de ces variables discrètes sont catégoriques en ce sens que pour chacune de ces variables, la distance, par exemple de 11 à 12, est différente de la distance de 5 à 6. Tandis qu'une valeur de variable plus élevée implique une valeur plus élevée en réalité, l'échelle est: pas nécessairement linéaire (en fait, ce n’est pas vraiment défini).

Ma question est:

  • Est-ce une bonne idée d’appliquer un algorithme de classification commun (par exemple, K-Means, puis Gaussian Mixture (GMM)) à cet ensemble de données contenant à la fois des variables discrètes et des variables continues?

Si non:

  • Devrais-je supprimer les variables discrètes et me concentrer uniquement sur les variables continues?
  • Devrais-je mieux discrétiser les processus continus et utiliser un algorithme de classification pour les données discrètes?
ptikobj
la source
3
Vous devez trouver une bonne mesure de distance (souvent la tâche la plus difficile en cluster): si vous pouvez trouver une mesure de distance décrivant correctement et avec précision la similarité (ou non) de vos éléments de données, vous ne devriez pas rencontrer de problèmes.
Andrew
En parlant de ces 2 variables qualitatives, vous les avez décrites comme étant ordinales. Maintenant, qu'en est-il des deux autres variables "ordinales"? Comment sont-ils différents de ceux?
Les
Ils sont également discrets, mais ils ont tous les deux une fonction de distance significative, c’est-à-dire qu’ils sont basés sur des intervalles (si je ne bousille pas la définition de «basés sur des intervalles»).
ptikobj

Réponses:

14

On vous a donc dit qu'il vous fallait une mesure de distance appropriée. Voici quelques pistes:

et bien sûr: distance de Mahalanobis .

Emre
la source
7

J'ai eu à traiter ce genre de problème dans le passé et je pense qu'il pourrait y avoir 2 approches intéressantes:

  • Continualification: transforme les attributs symboliques avec une séquence d'entiers. Il existe plusieurs façons de procéder, décrites dans le présent document . Vous pouvez essayer les algorithmes NBF, VDM et MDV.

  • Discrétisation: transformer des attributs continus en valeurs symboliques. Encore une fois, de nombreux algorithmes et un bon exposé à ce sujet seraient cet article . Je crois que la méthode la plus couramment utilisée est la méthode 1R de Holte, mais la meilleure façon de le savoir consiste à examiner les courbes ROC par rapport à des algorithmes tels que EWD, EFD, ID, LD ou NDD.

Une fois que vous avez toutes vos fonctionnalités dans le même espace, cela devient un problème de clustering habituel.

Le choix entre continuité et discrétisation dépend de votre ensemble de données et de la présentation de vos fonctionnalités. Il est donc difficile de le dire, mais je vous conseille de lire les articles que je vous ai donnés sur ce sujet.

Charles Menguy
la source
4

K-means n'a évidemment aucun sens, car il calcule des moyens (qui sont absurdes). Même chose pour GMM.

Vous voudrez peut-être essayer des algorithmes de clustering basés sur la distance avec des fonctions de distance appropriées, par exemple DBSCAN.

Le principal défi est de trouver une fonction de distance!

Bien que vous puissiez placer une fonction de distance différente dans k-moyennes, elle calculera toujours la moyenne qui n'a probablement pas beaucoup de sens (et dérange probablement avec une fonction de distance pour les valeurs discrètes).

Quoi qu'il en soit, concentrez-vous d'abord sur ce que "similaire" est . Puis clusters en utilisant cette définition de similaire!

Anony-Mousse
la source
2

Si vous êtes à l'aise avec une matrice de taille de distance num_of_samples x num_of_samples, vous pouvez également l'utiliser random forests.

Cliquez ici pour un article de référence intitulé Unsupervised learning with random forest predictors.

L'idée est de créer un jeu de données synthétique à l'aide de shufflingvaleurs du jeu de données d'origine et de former un classifieur pour séparer les deux. Pendant la classification, vous obtiendrez un inter-sample distance matrix, sur lequel vous pourrez tester votre algorithme de clustering préféré.

srctaha
la source
-2

Approche mixte à adopter: 1) Utiliser la technique de classification (arbre de décision C4.5) pour classer le jeu de données en 2 classes. 2) Une fois que c'est fait, laissez les variables catégorielles et passez aux variables continues pour la mise en cluster.

Swapnil Soni
la source
Je n'ai pas pu suivre votre suggestion. Quels sont les deux cours et comment cela vous aidera-t-il?
KarthikS
Je pense que ce que Swapnil Soni doit dire, c’est qu’une fois que nous avons utilisé la technique de classification, nous la classons en deux classes. Nous pouvons ensuite utiliser l’étiquette de sortie de la classification en tant que variable binaire. Ainsi, au lieu de toutes les variables catégorielles, vous obtenez une variable binaire indicative. Votre algorithme de classification peut alors utiliser les données (comprenant toutes les variables binaires continues plus 1). Mon interprétation peut être fausse cependant.
Tusharshar
parfaitement bien!
Swapnil Soni