Я пытаюсь применить идею взаимной информации к выбору функций, как описано в этих примечаниях к лекции (на странице 5).
Моя платформа - Matlab. Одна проблема, которую я нахожу при вычислении взаимной информации из эмпирических данных, состоит в том, что число всегда смещено вверх. Я нашел около 3 ~ 4 разных файлов для расчета MI в Matlab Central, и все они дают большие числа (например,> 0,4), когда я передаю независимые случайные величины.
Я не эксперт, но, похоже, проблема в том, что если вы просто используете совместную и предельную плотности для вычисления MI, в процессе возникает смещение, потому что MI по определению положительный. У кого-нибудь есть практические советы о том, как точно оценить взаимную информацию?
Схожий вопрос на практике, как люди на самом деле используют МИ для выбора функций? Для меня не очевидно, как придумать пороговое значение, поскольку МИ теоретически не ограничено. Или люди просто ранжируют функции по MI и получают лучшие k функций?
Ответы:
Это проблема ограниченного смещения выборки .
Небольшие выборочные оценки плотностей зашумлены, и это изменение вызывает ложные корреляции между переменными, которые увеличивают оценочную ценность информации.
Некоторые пакеты, реализующие эти методы в Matlab, включают infotoolbox и Spike Train Analysis Toolkit .
Для непрерывного случая оценки, основанные на расстояниях ближайших соседей, уменьшают проблему.
источник
Я использовал KL-дивергенцию и с соответствующими размерами выборки получаю значения 0 для локусов, где распределения имеют равную вероятность.
Я предлагаю вам перефразировать ваш MI с точки зрения KL-дивергенции.
источник
Вам следует использовать алгоритм частичной взаимной информации для выбора входной переменной (функции). Он основан на концепции МИ и оценке плотности вероятности. Например в:
Я использовал PMI, чтобы уменьшить количество входов нейронной сети, поскольку они увеличивают сложность и создают другие проблемы. Вы можете найти полный обзор алгоритмов выбора входных переменных (IVS) в статье Обзор методов выбора входных переменных для искусственных нейронных сетей . Вы можете использовать IVS для SVM и других. Для краткости используйте PMI.
источник