Рубрики
Без рубрики

Расчет энтропии с Scipy

Проблема: как рассчитать энтропию с помощью Scipy Library? Решение: Импортируйте функцию энтропии () из модуля Scipy.Stats и пропустить вероятность и основание логарифма в него. от Scipy.Stats Импорт энтропии P = [0,5, 0,25, 0,125, 0,125] (P,) Print (E) # 1.75 Попробуй сам: Запустите этот код в … Расчет энтропии с Scipy Подробнее »

Автор оригинала: Peter Reichl.

Проблема : Как рассчитать энтропию с помощью Scipy Library?

Решение : Импортируйте энтропия () Функция из Scipy.Stats Модуль и пройти вероятность и основание логарифма в него.

from scipy.stats import entropy

p = [0.5, 0.25, 0.125, 0.125]
e = entropy(p, base=2)

print(e)
# 1.75

Попробуйте сами : Запустите этот код в оболочке интерактивного кода!

Упражнение : Измените вероятности. Как изменяется энтропия?

Давайте начнем медленно! Вы собираетесь узнать самый актуальный фон о энтропии рядом.

Энтропия введение

В термодинамике энтропия объясняется как Состояние неопределенности или случайность.

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

Когда мы рассчитаем Статистическая энтропия Мы оцениваем количество информации в событии, переменной или распространении. Понимание этого измерения полезно в Машинное обучение во многих случаях, таких как здание Решение деревьев или выбрать лучшее классификатор модель.

Позже мы обсудим приложения энтропии позже в этой статье, но сначала мы рассмотрим теорию энтропии и как рассчитать ее с использованием Scipy.

Расчет энтропии

Вычисление информации переменной была разработана Claude Shannon , чей подход отвечает на вопрос, сколько «да» или «нет» вопросов вы бы ожидаете попросить получить правильный ответ?

Подумайте о переводе монеты. Предполагая, что монета справедливо, у вас есть 1 по 2 шанс прогнозирования результата. Вы бы угадали головы или хвосты, и правильные или неправильные, вам нужен только один вопрос, чтобы определить результат.

Теперь, скажем, у нас есть сумка с четырьмя не менее размерами дисками, но каждый другой цвет:

Угадать, какой диск был нарисован из сумки, одна из лучших стратегий – это устранить половину цветов. Например, начните, спрашивая, это синий или красный. Если ответ да, то требуется только еще один вопрос, поскольку ответ должен быть синим или красным. Если ответ нет, то вы можете предположить, что это зеленый или серый, поэтому только один вопрос необходим, чтобы правильно предсказать результат, привлекая нашу общую сумму до двух вопросов независимо от того, если ответ на наш вопрос зеленый цвет.

Мы видим, что когда событие с меньшей вероятностью произойдет, выбирая 1 в 4 по сравнению с 1 в 2, есть дополнительная информация для изучения, то есть два вопроса, которые нужны против одного.

Шеннон написал свой расчет таким образом:

Information(x) = -log(p(x))

В этой формуле Журнал () является алгоритмом базового 2 (потому что результат – это либо правдивый, либо ложный), так и p (x) Это вероятность х Отказ

По мере того, как более высокое значение информации растет, тем менее предсказуемым результат становится.

Когда вероятность определенная вероятность (например, двуглавый монетный флип, возникающий головы), вероятность составляет 1,0, что дает информацию расчета 0.

Мы можем запустить расчет Шеннона в Python, используя Математика Библиотека показана здесь:

Когда мы изменяем вероятность до 0,25, как в случае выбора правильного цвета диска, мы получаем этот результат:

Хотя кажется, что увеличение информации является линейным, что происходит, когда мы рассчитываем рулон одного умирания, или попросить кого-то угадать номер от 1 до 10? Вот визуальный вид информационных расчетов для списка вероятностей из менее-определенного ( p.1 ) к определенным ( p.0 ):

График показывает, что с большей неопределенностью рост информации является подлинейным, а не линейным.

Неравные вероятности

Возвращаясь к приведению цветных дисков, что, если у нас сейчас есть 8 дисков в сумке, и они не одинаково распределены? Посмотрите на этот прорыв по цвету:

Цвет Количество
Синий 1
Зеленый 1
красный 2
серый 4
Общий 8

Если мы используем исходную стратегию устранения половины цветов, задавая, если дисковый синий или зеленый, мы становятся менее эффективными, поскольку в этом сценарии есть комбинированная 0,25 вероятность либо цвета.

Мы знаем, что серый имеет самую высокую вероятность. Используя немного другой стратегии, мы сначала спросите, правильно ли серый (1 вопрос), затем перейти к следующей высокой вероятности, красным (2 ND Вопрос), а затем проверять, это синий или зеленый цвет (3 RD Вопрос).

В этом новом сценарии взвешивание наших догадок приведет к меньшему количеству необходимой информации. Таблицы ниже показывают сравнение двух методов. Информационный столбец – это продукт вероятности и вопросов столбцов.

Равные догадки
Цвет Проб Q qs. Информация
Синий 0.25 2 0.50
Зеленый 0.25 2 0.50
красный 0.25 2 0.50
серый 0.25 2 0.50
Общий 1 8 2.00
Взвешенные догадки
Цвет Проб Q qs. Информация
Синий 0.125 3 0.375
Зеленый 0.125 3 0.375
красный 0.25 2 0.50
серый 0.5 1 0.50
Общий 1 9 1.75

Метод одинакового угадания принимает в среднем 2 вопроса, но метод взвешенного угадателя занимает в среднем 1,75.

Мы можем использовать Scipy Library для выполнения расчета энтропии. Суб-библиотека «Статистика Scipy» имеет расчет энтропии, который мы можем использовать. Вот код для расчета энтропии для сценария, где четыре диска имеют разные вероятности:

Метод энтропии принимает два записей: список вероятностей и ваша база. Есть выбор здесь, так как мы используем двоичный журнал для расчета.

Мы получаем тот же результат, что и в таблице, показанном выше. С минимальным кодом Scipy Library позволяет быстро рассчитать энтропию Шеннона.

Дополнительно использует

Расчет энтропий успешно используется в реальном мире приложения в машинном обучении. Вот несколько примеров.

Решения деревьев

Дерево решений основано на наборе бинарных решений (True или false, да или нет). Он построен с серией узлов, где каждый узел вопрос: это цвет? Тестовый балл> 90? Каждый узел расщепляется на два и разлагается на меньшее и меньшие подмножества, когда вы перемещаетесь через дерево.

Точность с вашим деревом решений максимизируется, уменьшая ваши потери. Использование энтропии в качестве функции вашей потери – хороший выбор здесь. На каждом шаге движутся через ветви, энтропия рассчитывается до и после каждого шага. Если энтропия уменьшается, шаг подтвержден. В противном случае вы должны попробовать другую ветку.

Классификация с логистической регрессией

Ключ к логистической регрессии минимизирует потери или ошибку для лучшей модели. Энтропия – это стандартная функция потери для логистической регрессии и нейронных сетей.

Образец кода

Хотя существует несколько вариантов использования энтропии в качестве функции потери в машинном обучении, вот фрагмент кода, чтобы показать, как выделение сделано во время компиляции модели:

Заключение

Целью данной статьи было пролить свет на использование энтропии с помощью машинного обучения и о том, как его можно рассчитать с помощью Python.

Оригинал: “https://blog.finxter.com/calculating-entropy-with-scipy/”