Ich versuche, die Idee der gegenseitigen Information auf die Merkmalsauswahl anzuwenden, wie in diesen Vorlesungsunterlagen (auf Seite 5) beschrieben.
Meine Plattform ist Matlab. Ein Problem, das ich bei der Berechnung gegenseitiger Informationen aus empirischen Daten finde, ist, dass die Anzahl immer nach oben verzerrt ist. Ich habe ungefähr 3 ~ 4 verschiedene Dateien gefunden, um den MI in Matlab Central zu berechnen, und alle geben große Zahlen (wie> 0,4) an, wenn ich unabhängige Zufallsvariablen eingebe.
Ich bin kein Experte, aber das Problem scheint zu sein, dass, wenn Sie einfach die Gelenk- und Randdichte zur Berechnung des MI verwenden, eine Verzerrung in den Prozess eingeführt wird, da der MI per Definition positiv ist. Hat jemand praktische Ratschläge, wie man gegenseitige Informationen genau einschätzt?
Eine verwandte Frage ist in der Praxis, wie Menschen MI tatsächlich zur Auswahl von Funktionen verwenden. Es ist mir nicht klar, wie ich einen Schwellenwert finden soll, da MI theoretisch unbegrenzt ist. Oder ordnen die Leute die Features einfach nach MI und nehmen die Top-K-Features?
Antworten:
Dies ist das Problem einer begrenzten Abtastvorspannung .
Die kleinen Stichprobenschätzungen der Dichten sind verrauscht, und diese Variation induziert falsche Korrelationen zwischen den Variablen, die den geschätzten Informationswert erhöhen.
Im diskreten Fall ist dies ein gut untersuchtes Problem. Es gibt viele Techniken zur Korrektur, von der vollständigen Bayes'schen ( NSB ) bis zu einfachen Korrekturen. Am einfachsten (Miller-Madow) ist es, vom Wert zu subtrahieren . Dies ist der Unterschied in den Freiheitsgraden zwischen den beiden impliziten Modellen (Multinomial mit vollem Gelenk gegenüber dem Produkt unabhängiger Ränder) - tatsächlich ist bei ausreichender Stichprobe der Ähnlichkeitsverhältnis-Test der Unabhängigkeit ( G-Test ) verteilt mit(R−1)(S−1)/2Nln2 2Nln(2)I χ2 (R−1)(S−1) dof unter der Nullhypothese. Bei begrenzten Versuchen kann es sogar schwierig sein, R und S zuverlässig zu schätzen - eine effektive Korrektur besteht darin, diese mit einem Bayes'schen Zählverfahren zu schätzen (Panzeri-Treves- oder PT-Korrektur).
Einige Pakete, die diese Techniken in Matlab implementieren, enthalten Infotoolbox und Spike Train Analysis Toolkit .
Für den kontinuierlichen Fall verringern Schätzer, die auf Entfernungen zum nächsten Nachbarn basieren, das Problem.
quelle
Ich habe KL-Divergenz verwendet und mit geeigneten Stichprobengrößen Werte von 0 für Loci erhalten, bei denen Verteilungen die gleiche Wahrscheinlichkeit haben.
Ich schlage vor, Sie formulieren Ihren MI in Bezug auf KL-Divergenz neu.
quelle
Sie sollten einen Partial Mutual Information-Algorithmus für die Auswahl der Eingabevariablen (Features) verwenden. Es basiert auf MI-Konzepten und einer Wahrscheinlichkeitsdichteschätzung. Zum Beispiel in:
Ich habe PMI verwendet, um die Anzahl der neuronalen Netzwerkeingänge zu reduzieren, da diese die Komplexität erhöhen und andere Probleme verursachen. Eine vollständige Übersicht über IVS-Algorithmen (Input Variable Selection) finden Sie im Artikel Übersicht über Methoden zur Auswahl von Eingabevariablen für künstliche neuronale Netze . Sie können IVS für SVM und andere verwenden. Verwenden Sie PMI, um die Sache kurz zu machen.
quelle