Дифференциальная энтропия в python - PullRequest
0 голосов
/ 04 августа 2020

scipy.stats.entropy - это (Шеннона) энтропия для дискретных случайных величин, но он не вычисляет дифференциальную энтропию для непрерывных случайных величин, насколько я могу судить. Где и как я могу реализовать дифференциальную энтропию в python?

Ответы [ 2 ]

1 голос
/ 04 августа 2020

В любом случае вам нужно сохранить непрерывную случайную величину параметризованным способом, если вы не работаете с приближением. В этом случае вы обычно работаете с объектами распределения; а для известных распределений существуют формулы для дифференциальной энтропии в терминах параметров.

Scipy соответственно предоставляет entropy метод для rv_continuous, который вычисляет дифференциальную энтропию, где это возможно:

In [5]: import scipy.stats as st                                                                                                                             

In [6]: rv = st.beta(0.5, 0.5)                                                                                                                               

In [7]: rv.entropy()                                                                                                                                         
Out[7]: array(-0.24156448)
1 голос
/ 04 августа 2020

Фактический вопрос здесь в том, как сохранить непрерывную переменную в памяти. Вы можете использовать некоторые методы дискретизации и вычислить энтропию для дискретной случайной величины.

Вы также можете проверить Tensorflow Probability , который рассматривает распределения по существу как тензоры и имеет метод entropy() для Distribution класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...