Modèle de mélange non paramétrique et grappes

8

J'ai une question sur les grappes que j'envisage de traiter avec une approche de mélange non paramétrique (je pense). Je travaille sur l'explication du comportement humain.
Chaque ligne de ma base de données contient:

  1. l'ID de quelqu'un
  2. certains paramètres de l'environnement X (exemple: la température, le vent, etc.)
  3. une variable binaire Y représentant la réaction de la personne aux paramètres (exemple: tomber malade ou ne pas tomber malade à cause du temps).

Mon idée (basée sur l'intuition et non sur des données) est que nous pouvons rassembler les gens dans un nombre fini de groupes afin que dans un groupe, les gens aient la même réaction à la température (certains sont facilement malades, d'autres ne sont jamais malades ...) . Dans un groupe donné, plus formellement, la loi de Y conditionnelle aux paramètres X est la même.

Je ne sais pas de la loi de Y conditionnelle à X . Pour les paramètres X , je peux faire quelques hypothèses si nécessaire.

Je voudrais créer un groupe de personnes "ayant plus ou moins" la même réaction au paramètre. Par ailleurs, je voudrais prédire la réaction d'une personne donnée à une valeur donnée des paramètres (même si cet événement ne s'est jamais produit dans la base de données).

Il me semble que nous pouvons traiter le problème comme un modèle de mélange non paramétrique. Comme je n'ai pas d'hypothèse sur la loi conditionnelle de Y , je pense que je vais devoir la créer avec la méthode des noyaux par exemple. J'ai trouvé ce papier . Par ailleurs, il me semble que, dans ce cas, chaque ligne d'observation(Xje,Ouije) n'est pas une simple réalisation d'une variable aléatoire, mais Xje est une réalisation d'une variable aléatoire, et Ouije est une réalisation d'une variable aléatoire conditionnelle à Xje. Je ne sais pas si cela fait une différence.

J'ai environ 100 000 lignes. Le vecteurXia quelques composants discrets, et d'autres sont continus. Je me demande:

  • Mon approche est-elle correcte?
  • Recommanderiez-vous un autre point de vue pour ce problème?

Je serais très intéressé par des références à ce sujet.
N'hésitez pas à me demander de reformuler l'énoncé du problème.

Walden
la source
1
Puisque vous avez étiqueté des données, il s'agit simplement d'un problème de classification supervisé et ce dont vous avez besoin est d'un classificateur binaire. Le classificateur qui fonctionne le mieux est une question de goût personnel et de problème spécifique. Certainement, j'essaierais d'abord quelques options standard (SVM, arbres de décision, etc.) avant d'essayer quelque chose de plus exotique.
iliasfl
Sauf si vous êtes intéressé par la structure de l'ensemble, le commentaire de @ iliasfl est totalement valable: les techniques d'apprentissage du classificateur feront bien. Sinon, vous devez utiliser un apprentissage non supervisé. Avant d'essayer des modèles non paramétriques, vous pouvez essayer un algorithme EM plus simple pour séparer le mélange gaussien, ou simplement un clustering k-means, si vous pouvez estimer le nombre de clusters. Ensuite, vous pouvez utiliser son résultat pour la classification, ou encore classer les données brutes.
Roman Shapovalov

Réponses:

1

En réponse à votre point "Recommanderiez-vous un autre point de vue pour ce problème?", Je vous suggère de jeter un œil à vos données. Cela peut vous aider à mieux planifier les prochaines étapes à suivre. Après tout, le système œil-cerveau humain est assez bon en reconnaissance de formes et vous pourrez peut-être mieux décider du nombre de clusters, si vous optez pour un clustering non supervisé.

En conséquence, et puisque vos données semblent être de dimension "élevée", vous pouvez essayer d'effectuer une analyse en composantes principales (ACP) car il s'agit d'une analyse très rapide, en particulier pour votre ensemble de données de 100 000 points. L'ACP, cependant, n'est pas la seule et pas nécessairement l'approche la plus appropriée pour la réduction de dimension dans le but de la visualisation (2D / 3D) car c'est une méthode paramétrique et linéaire. Vos données peuvent cependant se comporter de façon non linéaire. Je peux suggérer la boîte à outils de réduction de dimension pour Matlab de Laurens van der Maaten qui comprend de nombreuses techniques différentes. Cependant, certaines des techniques qui s'y trouvent sont intrinsèquement lentes, vous pouvez donc les tester sur des données sous-échantillonnées. Une technique de réduction de dimension non paramétrique et non linéaire très récente et puissante est la BH-SNEce qui devrait également fonctionner pour la taille de votre ensemble de données, bien que cela puisse prendre environ 30 minutes à 1 heure selon votre matériel disponible. Puisque vous êtes intéressé par la détection de clusters, BH-SNE pourrait être un bon choix car il (et c'est le "prédécesseur" t-SNE) a montré des performances impressionnantes à cet égard sur divers ensembles de données (comme le manuscrit).

Enfin, en abordant votre point sur les données continues / discrètes, c'est quelque chose où je n'ai pas encore d'expérience comment cela influence la réduction de dimension. Par conséquent, vous pouvez essayer de discrétiser les variables continues ou d'ignorer les (quelques?) Variables discrètes, si possible. Alternativement, vous voudrez peut-être prendre la variable binaire (réaction de la personne) pour coder en couleur les points dans la visualisation à faible dimension (2D / 3D).

PS Effectuer un clustering hiérarchique (analyse de liaison) et regarder le dendrogramme résultant est une autre façon de créer une représentation à faible dimension de vos données qui peut vous aider à mieux estimer s'il y a des clusters et potentiellement aussi combien il y a de clusters.

Ombre
la source