Калькулятор энтропии Шеннона
Рассчитайте энтропию Шеннона для любого набора вероятностей или частот. Введите значения по категориям, выберите основание логарифма (биты, наты или диты) — и получите H, максимальную энтропию и коэффициент эффективности.
Оценка неопределённости распределения
Формула энтропии Шеннона
Где:
- \(p_i\) — вероятность категории \(i\) (количества нормализуются: \(p_i = n_i / n\));
- \(k\) — число категорий;
- \(b\) — основание логарифма: при 2 получаются биты, при \(e\) — наты, при 10 — диты (хартли).
Формула отражает среднюю неожиданность, или информативность, исхода, извлечённого из этого распределения: каждый член учитывает информацию \(\log_b(1/p_i)\) категории с весом, равным частоте её появления.
Энтропия Шеннона — пример расчёта
Пример: в опросе 100 человек просили назвать любимый бренд из четырёх; количества ответов — 40, 30, 20 и 10. Они нормализуются в вероятности \(p = (0.4,\ 0.3,\ 0.2,\ 0.1)\), основание логарифма — 2 (биты).
\[ H = -(0.4\log_2 0.4 + 0.3\log_2 0.3 + 0.2\log_2 0.2 + 0.1\log_2 0.1) \]
\[ H = 0.5288 + 0.5211 + 0.4644 + 0.3322 = 1.8464 \text{ бит} \]
\[ H_{max} = \log_2 4 = 2 \text{ бит}, \quad \frac{H}{H_{max}} = \frac{1.8464}{2} = 0.9232 \]
Результат: \(H \approx 1.8464\) бит, то есть 92,32% от максимума — распределение близко к равномерному по четырём категориям.
Как пользоваться калькулятором
- Введите значения в поле «Вероятности или количества по категориям» — по одному на категорию, разделяя их пробелами, точками с запятой или переносами строк. Можно указать вероятности (например, 0,5; 0,25; 0,25) или исходные количества (например, 40; 30; 20; 10); десятичной запятой пользоваться можно.
- Установите «Тип входных данных» в режим «Автоопределение» (значения, дающие в сумме 1, считаются вероятностями) либо принудительно выберите «Вероятности (должны давать в сумме 1)» или «Количества / частоты (нормализуются)», если автоматический выбор неоднозначен.
- Выберите основание логарифма: 2 — для битов, \(e\) — для натов, 10 — для дитов (хартли).
- Прочитайте результаты: энтропия Шеннона H, максимальная возможная энтропия \(H_{max}\) для вашего числа категорий, эффективность \(H/H_{max}\) и разбивка по категориям с вероятностью каждой, её информативностью и вкладом в H.
Что такое энтропия Шеннона?
Энтропия Шеннона, предложенная Клодом Шенноном в 1948 году, измеряет неопределённость распределения вероятностей: насколько трудно в среднем предсказать, какая категория выпадет. Это математическое ожидание «неожиданности» исхода \(\log_b(1/p_i)\). Редкие события удивляют сильно (большая величина \(\log_b(1/p_i)\)), но случаются редко; частые события происходят часто, но почти не удивляют. Энтропия — равновесие между этими двумя факторами, средневзвешенная по вероятностям неожиданность.
Значение H лежит в пределах от 0 до \(\log_b k\). Оно равно 0, когда один исход предопределён (единичная вероятность \(p_i = 1\)), и максимально при равномерном распределении — тогда никакая догадка не лучше другой. При основании 2 единицей измерения служит бит, и H можно понимать буквально как ожидаемое число вопросов «да/нет», необходимых для выяснения исхода — идея, лежащая в основе сжатия данных и теории кодирования. При основании \(e\) единицы называются натами, они распространены в машинном обучении и физике; основание 10 даёт диты. Смена основания лишь меняет масштаб H: порядок распределений по величине энтропии и отношение \(H/H_{max}\) остаются прежними.
Эффективность \(H/H_{max}\) (её также называют нормированной или относительной энтропией) показывает, насколько ваше распределение близко к максимально неопределённому. В примере выше 92,32% означают, что четыре бренда делят рынок почти поровну. Значение, близкое к 0, говорит о том, что исход почти предсказуем. Поскольку это отношение безразмерно, оно удобнее всего для сравнения неопределённости распределений с разным числом категорий — чего «сырая» величина H сделать не может, ведь \(H_{max}\) растёт вместе с \(k\).
Допущения, ограничения и советы
- Полное распределение: значения должны охватывать все категории. Вероятности обязаны давать в сумме 1 (небольшая погрешность округления исправляется автоматически); количества нормализуются так, чтобы это условие выполнялось.
- Нулевые вероятности: по соглашению \(0 \cdot \log 0 = 0\), поэтому пустые категории ничего не добавляют — но учтите, что категория с нулевой вероятностью всё же увеличивает \(k\), а значит, и \(H_{max}\), снижая эффективность.
- Категории, а не величины: энтропия измеряет неопределённость относительно того, какая категория выпадет, а не размер значений. Она не учитывает порядок категорий, расстояния между ними и их названия, поэтому энтропия — не мера разброса; для этого воспользуйтесь калькулятором асимметрии и эксцесса.
- Выборочные данные: при малых выборках энтропия, оценённая по количествам, занижается. Поправка на смещение (Миллера–Мэдоу) добавляет \((k-1)/(2n\ln b)\), где \(n\) — суммарное количество наблюдений; при малых количествах её стоит применять.
- Родственные меры: те же слагаемые \(p \log p\) фигурируют в перекрёстной энтропии и дивергенции Кульбака–Лейблера, которыми распределение сравнивают с эталонным. Энтропия равномерного распределения напрямую связана с равномерным распределением, а к матрице ошибок её routinely применяют для оценки неопределённости классификатора — точнее, её регулярно применяют. Для сравнения наблюдаемого распределения с ожидаемым можно также использовать критерий Краскела–Уоллиса.
Краткая справка: единицы и максимальная энтропия
| Основание | Единица | \(H_{max}\) для \(k\) категорий | Типичное применение |
|---|---|---|---|
| 2 | биты | \(\log_2 k\) | Теория информации, кодирование, информатика |
| \(e \approx 2.718\) | наты | \(\ln k\) | Машинное обучение, статистическая механика |
| 10 | диты (хартли) | \(\log_{10} k\) | Классические меры информации |
Для перевода между единицами используйте \(H_{\text{бит}} = H_{\text{нат}} / \ln 2\) или \(H_{\text{бит}} = H_{\text{дит}} \cdot \log_2 10\). Если не уверены, какое основание выбрать, берите 2 — биты встречаются в отчётах чаще всего.
Часто задаваемые вопросы
Какие ошибки чаще всего допускают при вычислении энтропии?
Самые частые ошибки: забыть нормализовать количества так, чтобы их сумма равнялась 1; включить в набор категории с нулевым количеством, что завышает k (увеличивает \(H_{max}\) и снижает эффективность); перепутать основания логарифма при сравнении значений из разных источников. И помните: энтропия не учитывает величину и порядок значений — наборы (10, 20, 70) и (70, 20, 10) дают одинаковую энтропию, поскольку важны только вероятности.