Je veux apprendre (déduire) les poids d'attribut pour ma mesure de dissimilarité que je peux utiliser pour le clustering.
J'ai quelques exemples de paires d'objets qui sont "similaires" (devraient être dans le même cluster), ainsi que quelques exemples ( c i , d i ) de paires d'objets qui ne sont "pas similaires" "(ne doit pas être dans le même cluster). Chaque objet a un certain nombre d'attributs: si vous le souhaitez, nous pouvons considérer chaque objet comme un vecteur d'entités en d dimensions, où chaque entité est un entier non négatif. Existe-t-il des techniques pour utiliser de tels exemples d'objets similaires / dissemblables pour estimer à partir d'eux des poids de caractéristiques optimaux pour une mesure de dissimilarité?
Si cela aide, dans mon application, il serait probablement raisonnable de se concentrer sur l'apprentissage d'une mesure de dissimilarité qui est une norme pondérée L2:
où les poids ne sont pas connus et doivent être appris. (Ou, une sorte de mesure de similitude cosinus pondérée pourrait également être raisonnable.) Existe-t-il de bons algorithmes pour apprendre les poids α j pour une telle mesure? Ou existe-t-il d'autres méthodes d'apprentissage d'une mesure de similitude / dissimilarité que je devrais envisager?
Le nombre de dimensions est malheureusement très important (des milliers ou plus; il est dérivé des fonctionnalités du sac de mots). Cependant, j'ai plusieurs dizaines de milliers d'exemples. J'ai ensuite des centaines de milliers d'objets que je souhaite regrouper, il est donc important de généraliser à partir des exemples pour apprendre une bonne métrique de dissimilarité.
Je suppose que cela tombe dans la rubrique du clustering semi-supervisé, et il semble que cela pourrait être de la veine "d'adaptation de la similitude", mais je n'ai pas été en mesure de trouver des descriptions claires des algorithmes à utiliser à cette fin.
Réponses:
C'est un gros problème dans certains domaines de l'apprentissage automatique. Je ne le connais pas aussi bien que je le souhaiterais, mais je pense que cela devrait vous aider à démarrer.
La réduction de la dimensionnalité par l'apprentissage d'une cartographie invariante (DrLIM) semble très bien fonctionner sur certains ensembles de données.
L'analyse des composants de voisinage est un très bel algorithme linéaire, et des versions non linéaires ont également été développées.
Il y a toute une littérature qui traite de cette question du point de vue de "l'apprentissage d'un noyau". Je n'en sais pas grand-chose, mais ce document est très cité.
la source
En d'autres termes, vous posez des questions sur le prétraitement et la mise à l'échelle des données. C'est trop large pour être bien répondu en une seule question. Chercher:
Il existe une quantité considérable de littérature et même des pistes de conférence dédiées à cela. Quelques méthodes pour vous aider à démarrer:
la source