Sélection de fonctionnalités pour les problèmes de clustering


9

J'essaie de regrouper différents ensembles de données en utilisant des algorithmes non supervisés (clustering). Le problème est que j'ai de nombreuses fonctionnalités (~ 500) et une petite quantité de cas (200-300).

Jusqu'à présent, je ne faisais que des problèmes de classification pour lesquels j'avais toujours étiqueté les données comme des ensembles d'entraînement. Là, j'ai utilisé un critère (c'est-à-dire random.forest.importance ou information.gain) pour la présélection des fonctionnalités, puis j'ai utilisé une sélection séquentielle vers l'avant pour différents apprenants afin de trouver les fonctionnalités pertinentes.

Maintenant, je vois qu'en cas d'apprentissage non supervisé, je n'ai aucun critère de présélection et je ne peux pas utiliser la sélection séquentielle directe (du moins pas dans le package mlr).

Je me demandais si je pouvais faire une analyse des composants principaux avant de trouver un petit nombre de fonctionnalités à intégrer à mon algorithme de clustering. Ou avez-vous une autre idée?

Merci

Éditer:

Ok, donc après quelques recherches en ligne, je peux mettre à jour un peu ma question: Tout d'abord, j'ai lu quelques articles qui découragent l'utilisation de PCA avant les algorithmes de clustering, pour deux raisons:

  • Les PC sont des fonctions de toutes les fonctionnalités, il est donc difficile de relier le résultat à l'ensemble de données initial et donc il est plus difficile à interpréter

  • De plus, si vous avez le problème qu'en vérité, seule une très petite fraction de vos fonctionnalités est utile pour effectuer le clustering, il n'est pas dit que ces fonctionnalités décrivent également la plus grande variance parmi les échantillons (ce que font les PC)

Alors PCA est hors de la table ...

Maintenant, je reviens à mon idée initiale de faire une sélection séquentielle vers l'avant pour le clustering.

Quelle mesure de performance recommanderiez-vous? (J'ai pensé au Dunn-Index) Quel algorithme de clustering conduirait à des clusters de plus ou moins la même taille? (pour le clustering hiérarchique, j'obtiens généralement un cluster avec une seule valeur aberrante et un autre avec tout le reste -> donc j'aurais besoin de quelque chose qui protège en quelque sorte contre les valeurs aberrantes)

J'espère que vous pourrez m'aider ...


Des forêts aléatoires peuvent être appliquées dans des problèmes non supervisés. Et je pense que vous pouvez toujours extraire certaines fonctionnalités informatives dans le processus.
amanita kiki

Réponses:


11

J'ai quelques réflexions à partager sur la réduction des dimensions des problèmes d'apprentissage non supervisés. En répondant, j'ai supposé que votre intérêt portait sur une interprétation humaine des clusters "high-touch", par opposition à une approche d'apprentissage automatique, clé en main, boîte noire et "low-touch" dans laquelle l'interprétation est délibérément minimisée. . S'il s'agissait de ce dernier, pourquoi voudriez-vous même poser la question? Notez également que j'ai eu une tonne d'expérience dans la gestion de solutions de cluster dans un large éventail d'environnements commerciaux au fil des ans, y compris le marketing stratégique B2C, les arènes technologiques B2B et la politique de l'éducation (regroupement des étudiants et des écoles).

Mais d'abord, j'ai une question concernant votre commentaire concernant le "regroupement de différents ensembles de données". Je ne savais pas ce que vous vouliez dire par là ou comment cela pourrait avoir un impact sur l'approche et j'espérais que vous pourriez élaborer.

Je voudrais contester votre hypothèse n ° 1 ci-dessus selon laquelle les solutions basées sur les PCA sont "difficiles à interpréter". Les raisons de l'exécution même d'une PCA comme étape préliminaire du clustering sont principalement liées à l' hygiène de la solution résultante dans la mesure où de nombreux algorithmes de clustering sont sensibles à la redondance des fonctionnalités. PCA réduit cette redondance en une poignée de composants gérables, minimisant ainsi les défis et les difficultés que vous notez concernant la sélection des fonctionnalités. S'il est vrai que les composants issus d'une PCA brouillent la granularité et la spécificité des fonctionnalités individuelles, c'est un problème si vous vous fiez uniquementsur ces composants dans l'analyse des résultats. En d'autres termes, vous n'êtes en aucune façon obligé d'utiliser uniquement les composants pour l'interprétation de cluster. Non seulement cela, vous n'avez même pas nécessairement besoin de vous soucier de ce que signifient les dimensions des facteurs. Ils ne sont qu'un moyen intermédiaire et (finalement) jetable pour une fin facilitant une solution applicable. Mais en faisant ce point, je diffère de nombreux praticiens car les équipes peuvent, vont et vont passer des semaines à construire soigneusement une solution factorielle "significative". Pour moi, c'est une perte inefficace de temps et d'argent pour les clients.

À ce stade, il y aura une cargaison de considérations techniques à traiter. D'une part, si votre algorithme PCA n'est pas invariant à l'échelle (par exemple, OLS vs ML), alors toute solution PCA résultante sera déformée, chargeant plus lourdement sur les caractéristiques à forte variance. Dans ces cas, vos fonctions doivent être prétraitées ou transformées d'une manière ou d'une autre pour aplanir cet écart. Il existe un grand nombre de possibilités ici, notamment la standardisation moyenne, la standardisation de la plage ou de l'IQR, la mise à l'échelle ipsative, etc. Tirez parti de cette transformation pour fournir la solution la meilleure et la plus interprétable.

Une fois qu'une solution de cluster est générée, l'interprétation est mieux motivée (d'après mon expérience) en ignorant les composants et en repliant les fonctionnalités d'origine ainsi que toute information descriptive supplémentaire non directement utilisée dans la solution. À ce stade, quelques heuristiques sont les meilleurs guides pour un aperçu qualitatif. Cela peut être aussi simple que de générer une feuille de calcul qui présente vos clusters en fonction des moyennes ou des médianes pour chaque entité (les lignes de la feuille), pour chaque cluster (les colonnes) ainsi qu'une colonne supplémentaire représentant la moyenne générale de votre échantillon total . Ensuite, en indexant les moyennes de cluster pour chaque entité par rapport à la moyenne générale (et en multipliant par 100), une heuristique est créée qui est comme un score de QI dans la mesure où environ "100" est un QI "normal" ou un comportement moyen, les indices de 120+ suggèrent de fortes probabilités qu'une caractéristique soit "vraie" sur le comportement d'un cluster et les indices de 80 ou moins indiquent des caractéristiques qui "ne sont pas vraies" d'un cluster. Ces indices de 120+ et 80 ou moins sont comme des tests t proxy pour la signification d'une caractéristique donnée dans la conduite de la solution. Bien sûr, vous pouvez exécuter des tests de groupe significatifs et, selon la taille des échantillons, vous obtiendrez des réponses qui varient autour de ces règles générales rapides et sales.

Ok ... après tout cela, supposons que vous êtes toujours opposé à l'utilisation de PCA comme entrée directe dans un algorithme de clustering, le problème reste de savoir comment sélectionner un ensemble réduit de fonctionnalités. PCA peut toujours être utile ici car les PCA sont comme exécuter une régression sans variable dépendante. Les fonctions de chargement par le haut sur chaque composant peuvent devenir les entrées de l'algorithme de cluster.

En ce qui concerne le grand nombre de fonctionnalités et la taille d'échantillon relativement petite de vos données, la règle de base typique dans de nombreuses analyses multivariées "d'informations complètes" est un minimum d'environ 10 observations par fonctionnalité. Il existe certaines méthodes spécialisées qui peuvent être utilisées pour contourner ce défi. Par exemple, les moindres carrés partiels (PLS) ont été développés pour la première fois par Herman Wold dans son livre de 1990 The empirical Empiricism pour une utilisation dans des domaines tels que la chimiométrie qui font face à ce problème précis. Il est de nature analytique, mais il est beaucoup moins contraignant d'exiger un grand n pour générer les dimensions. D'autres solutions incluent les approches d'apprentissage automatique de type forêt, "diviser pour mieux régner", utilisées avec des quantités massives d'informations. Ces méthodes sont passées en revue dans ce pdfhttp://www.wisdom.weizmann.ac.il/~harel/papers/Divide%20and%20Conquer.pdf

Mais supposons que vous ayez décidé que vous ne vouliez toujours rien à voir avec l'analyse factorielle et que vous soyez déterminé à exécuter une sorte de processus de sélection supervisé et "séquentiel". À mon avis, le problème le plus important est moins de trouver une mesure de performance post-hoc (Dunn Index) et plus d'identifier un proxy approprié - une variable dépendante - pour rendre même cette approche possible. Cette décision est entièrement fonction de votre jugement et du statut de PME par rapport à vos données. Il n'y a pas de «meilleures pratiques», des réponses beaucoup moins faciles à cela et compte tenu de la façon dont vous avez décrit vos données, pas un petit défi.

Une fois cette décision prise, il existe littéralement des centaines de solutions de sélection de variables possibles. La sélection variable est un sujet sur lequel chaque statisticien et son frère ont publié un article. Votre approche préférée semble être la "sélection séquentielle vers l'avant" est très bien.

Il convient de noter qu'il existe des modèles d'apprentissage supervisé qui intègrent une solution de cluster dans le cadre de l'algorithme. Des exemples de cela incluent les approches larges et très flexibles connues sous le nom de modèles de classe latente. L'essence des modèles LC est qu'ils sont en deux étapes: dans la première étape, un DV est défini et un modèle de régression est construit. Dans la deuxième étape, toute hétérogénéité de la production résiduelle du modèle - un seul vecteur latent - est divisée en "classes" latentes. Il y a un aperçu de la modélisation LC dans cette discussion de CV ici ... Doute du modèle logit multinomial de classe latente

J'espère que cela t'aides.


Merci d'avoir pris le temps de répondre si longuement à ma question. Tout d'abord, c'est drôle que vous ayez mentionné la chimiométrie car c'est exactement le domaine sur lequel je travaille. J'essaie de trouver des grappes dans les mesures de différents échantillons et mes caractéristiques sont des signaux dans un spectre RMN. C'est aussi la principale raison pour laquelle j'ai pensé à abandonner l'ACP si tôt, car le but de mon analyse est de relier les grappes à une poignée de caractéristiques réelles (signaux). Je ne suis pas vraiment décidé à utiliser une sélection séquentielle, c'est exactement ce que j'ai utilisé jusqu'à présent. J'examinerai les liens que vous avez donnés.
JohnDoe

C'est drôle à propos de la chimiométrie. Le livre de Wold est une bonne lecture, juste en général. Quels types de «sujets» composent les échantillons? Et qu'est-ce que l'imagerie nmrs?
Mike Hunter

Les échantillons sont des extraits aqueux de plantes et prennent des spectres RMN 1H. Ma tâche est purement exploratoire. Je suis censé trouver n'importe quel cluster que nous voulons associer à différents génotypes plus tard ou à différentes caractéristiques de la plante comme la résistance à la sécheresse et au stress, etc. Il n'est pas facile de trouver un bon point de départ pour trouver l'ensemble correct de métabolites. / fonctionnalités qui aident à diviser les clusters, car il y aura différents clusters créés par différentes fonctionnalités pour les différentes questions.
JohnDoe

Par conséquent, je pensais que l'approche séquentielle pourrait fonctionner le mieux: - trouver un ensemble de fonctionnalités pour regrouper les données - puis supprimer ces fonctionnalités de l'ensemble et recommencer les différentes questions
JohnDoe

1
Quelque chose à considérer est de comparer tout travail exploratoire avec un ensemble de grappes prédéterminé ou défini, également appelé analyse de grappe «confirmatoire». Je suggère cela car il semble que vous et votre équipe ayez de fortes hypothèses en cours sur la formation de grappes en fonction, par exemple, de la «résistance à la sécheresse et au stress» des plantes. Je pense que vous constaterez que le travail d'exploration fournira des perspectives et des résultats supérieurs. Le clustering exploratoire exploite toutes les informations disponibles dans vos données, tandis que les règles d'affectation "de confirmation" capitalisent généralement sur une poignée relative de fonctionnalités
Mike Hunter

1

Tout ce dont vous avez besoin est un critère de qualité de clustering. Voici l'idée: vous divisez les données sur le train et le test, construisez un clustering sur la partie train; utilisez ce regroupement pour regrouper chacun des éléments de l'ensemble de test (par le cluster le plus proche); construire un cluster séparé sur l'ensemble de test; trouver la similitude du clustering dans le test avec le clustering prédit. Cette similitude est le critère de qualité du clustering. Maintenant, la façon de mesurer cette similitude dépend de vous. Une fois que vous l'avez obtenu, vous sélectionnez le sous-ensemble de fonctionnalités pour maximiser cette similitude.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.