Sélection de fonctionnalités à l'aide d'informations mutuelles dans Matlab


10

J'essaie d'appliquer l'idée d'information mutuelle à la sélection des fonctionnalités, comme décrit dans ces notes de cours (à la page 5).

Ma plateforme est Matlab. Un problème que je trouve lors du calcul d'informations mutuelles à partir de données empiriques est que le nombre est toujours biaisé vers le haut. J'ai trouvé environ 3 à 4 fichiers différents pour calculer l'IM sur Matlab Central et ils donnent tous de grands nombres (comme> 0,4) lorsque je fournis des variables aléatoires indépendantes.

Je ne suis pas un expert, mais le problème semble être que si vous utilisez simplement des densités conjointes et marginales pour calculer l'IM, un biais est introduit dans le processus parce que l'IM est par définition positif. Quelqu'un a-t-il des conseils pratiques sur la façon d'estimer avec précision les informations mutuelles?

Une question connexe est, dans la pratique, comment les gens utilisent-ils réellement MI pour sélectionner les fonctionnalités? Il n'est pas évident pour moi de trouver une valeur seuil, car l'IM est en théorie illimité. Ou les gens classent-ils simplement les fonctionnalités par MI et prennent-ils les k meilleures fonctionnalités?


Personne n'est intéressé par ce sujet?

Avez-vous encore une réponse à cela?
entropie

Malheureusement non. Avez-vous également le même problème?

Réponses:


3

C'est le problème du biais d'échantillonnage limité .

Les petites estimations des densités de l'échantillon sont bruyantes et cette variation induit de fausses corrélations entre les variables qui augmentent la valeur d'information estimée.

Dans le cas discret, c'est un problème bien étudié. Il existe de nombreuses techniques pour corriger, de la version entièrement bayésienne ( NSB ) aux corrections simples. Le plus élémentaire (Miller-Madow) consiste à soustraire de la valeur. Il s'agit de la différence de degrés de liberté entre les deux modèles implicites (multinomial conjoint complet vs produit de marginaux indépendants) - en effet, avec un échantillonnage suffisant est le test du rapport de similarité d'indépendance ( G-test ) qui est distribué avec(R1)(S1)/2Nln22Nln(2)Iχ2(R1)(S1)dof sous l'hypothèse nulle. Avec des essais limités, il peut même être difficile d'estimer de manière fiable R et S - une correction efficace consiste à utiliser une procédure de comptage bayésienne pour les estimer (Panzeri-Treves ou correction PT).

Certains packages implémentant ces techniques dans Matlab incluent infotoolbox et Spike Train Analysis Toolkit .

Pour le cas continu, les estimateurs basés sur les distances des plus proches voisins réduisent le problème.


1

J'ai utilisé la divergence KL et avec des tailles d'échantillon appropriées, obtenez des valeurs de 0 pour les locus où les distributions ont une probabilité égale.

Je vous suggère de reformuler votre MI en termes de divergence KL.


1

Vous devez utiliser un algorithme d'informations mutuelles partielles pour la sélection des variables d'entrée (fonction). Il est basé sur les concepts MI et l'estimation de la densité de probabilité. Par exemple dans:

  1. PMI basé sur le noyau : (+) a un critère d'arrêt (Akaike Information Criteria) (-) complexité plus élevée
  2. PMI basé sur kNN : (-) n'a pas de critère d'arrêt (+) complexité moindre

J'ai utilisé PMI pour réduire le nombre d'entrées de réseau neuronal car elles augmentent la complexité et introduisent d'autres problèmes. Vous pouvez trouver un aperçu complet des algorithmes de sélection des variables d'entrée (IVS) dans la revue des méthodes de sélection des variables d'entrée pour les réseaux de neurones artificiels . Vous pouvez utiliser IVS pour SVM et autres. Pour faire court, utilisez PMI.

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.