Wybór funkcji za pomocą wzajemnej informacji w Matlabie

10

Próbuję zastosować ideę wzajemnej informacji do wyboru funkcji, jak opisano w tych uwagach do wykładu (na stronie 5).

Moja platforma to Matlab. Jednym z problemów, które spotykam przy obliczaniu wzajemnej informacji z danych empirycznych, jest to, że liczba jest zawsze tendencyjna w górę. Znalazłem około 3 ~ 4 różnych plików do obliczenia MI w Matlab Central i wszystkie one dają duże liczby (jak> 0,4), kiedy wprowadzam niezależne zmienne losowe.

Nie jestem ekspertem, ale wydaje się, że problem polega na tym, że jeśli po prostu zastosujesz gęstość stawów i marginesów do obliczenia MI, w tym procesie wprowadzane będzie odchylenie, ponieważ MI jest z definicji pozytywne. Czy ktoś ma praktyczne porady, jak dokładnie oszacować wzajemne informacje?

Powiązanym pytaniem jest w praktyce, w jaki sposób ludzie faktycznie używają MI do wybierania funkcji? Nie jest dla mnie oczywiste, jak ustalić wartość progową, ponieważ MI jest teoretycznie nieograniczony. Czy ludzie oceniają funkcje według MI i wybierają najlepsze funkcje?

entropia
źródło
Nikt nie jest zainteresowany tym tematem?
Masz już na to odpowiedź?
entropia
Niestety nie. Czy masz również ten sam problem?

Odpowiedzi:

3

Jest to problem ograniczonej stronniczości próbkowania .

Szacunki małych prób dotyczące gęstości są hałaśliwe, a ta zmienność indukuje fałszywe korelacje między zmiennymi, które zwiększają oszacowaną wartość informacyjną.

W przypadku dyskretnym jest to dobrze zbadany problem. Istnieje wiele technik poprawiania, od całkowicie bayesowskiego ( NSB ), po proste poprawki. Najbardziej podstawowym (Miller-Madow) jest odjęcie od wartości. Jest to różnica w stopniach swobody między dwoma niejawnymi modelami (pełny staw wielomianowy vs iloczyn niezależnych marginesów) - w rzeczywistości przy wystarczającym próbkowaniu jest testem współczynnika prawdopodobieństwa niezależności ( test G ), który jest dystrybuowane z2 N ln ( 2 ) I χ 2 ( R - 1 ) ( S - 1 )(R1)(S1)/2Nln22Nln(2)Iχ2(R1)(S1)dof pod hipotezą zerową. W przypadku ograniczonych prób wiarygodne oszacowanie R i S może być trudne - skuteczną korektą jest zastosowanie procedury liczenia Bayesa do oszacowania tych wartości (korekta PzKezera lub PT).

Niektóre pakiety implementujące te techniki w Matlab obejmują infotoolbox i Spike Train Analysis Toolkit .

W przypadku ciągłym estymatory oparte na odległościach najbliższego sąsiada zmniejszają problem.

Thrope
źródło
1

Użyłem rozbieżności KL i przy odpowiednich wielkościach próbek otrzymuję wartości 0 dla loci, w których rozkłady mają równe prawdopodobieństwo.

Sugeruję, abyś sformułował swój MI pod względem dywergencji KL.

EngrStudent
źródło
1

Do wyboru zmiennej wejściowej (cechy) należy użyć algorytmu Częściowa informacja wzajemna. Opiera się na koncepcjach MI i szacowaniu gęstości prawdopodobieństwa. Na przykład w:

  1. PMI oparty na jądrze : (+) ma kryteria zatrzymania (Akaike Information Criteria) (-) większa złożoność
  2. PMI oparty na kNN : (-) nie ma kryteriów zatrzymania (+) niższej złożoności

Użyłem PMI do zmniejszenia liczby wejść sieci neuronowej, ponieważ zwiększają one złożoność i wprowadzają inne problemy. Kompletny przegląd algorytmów wyboru zmiennych wejściowych (IVS) można znaleźć w dokumencie Przegląd metod wyboru zmiennych wejściowych dla artykułu dotyczącego sztucznych sieci neuronowych . Możesz używać IVS dla SVM i innych. Krótko mówiąc, użyj PMI.

użytkownik2034223
źródło