Введение:

Я познакомился со словом энтропия, когда учился в инженерной школе. Это слово снова появилось, когда я изучал науку о данных. Поэтому мне было любопытно, как слово «энтропия» используется в разных академических областях. В этой статье я попытаюсь установить связь. Я осторожно начну с энтропии в ее применении к термодинамике, затем расскажу об энтропии в теории информации, а затем в науке о данных. Наконец, мы увидим его применение в построении дерева решений — популярного алгоритма машинного обучения с учителем.

Энтропия в термодинамике:

Энтропия есть мера беспорядка. Второй закон термодинамики гласит, что изменение энтропии во Вселенной больше нуля. Возьмем в качестве примера три состояния воды: твердое тело или лед, жидкость и газ или пар. В твердом состоянии молекулы тесно связаны друг с другом, придавая ему структуру, или молекулы упорядочены. У льда самая низкая энтропия. Вода в жидком виде не имеет структуры (принимает форму сосуда) из-за более слабой связи между молекулами имеет большую энтропию, чем лед, так как молекулы разупорядочены. Парообразная форма воды имеет наибольшую энтропию из всех трех состояний.

Давайте визуализируем 3 состояния воды с помощью четырех синих шаров, отмеченных буквой «W», как в молекулах воды, и зеленого шара «S», как чего-то другого, кроме молекул воды. Теперь мы будем использовать эти синие и зеленые шары в качестве объекта нашего исследования.

Энтропия и примесь:

Допустим, мне нужно выбрать случайный шар из ящика-1, насколько я уверен, что выберу синий шар с пометкой «W». Я на 100 % уверен, что мяч, который я выбираю, будет синим шаром, другими словами, у меня очень высокие знания о мяче, который я собираю. Если мне нужно взять синий мяч из ящика-2, я больше не уверен на 100%, что мяч, который я выберу, будет синим, но шансы очень высоки, поэтому у меня средние знания. Выбор синего шара из Коробки-3 является чисто случайным, поэтому мои знания очень низкие. Тот факт, что мои знания о том, как выбрать синий шар из коробки 1, очень высоки из-за 100% чистоты или отсутствия примесей по сравнению с моими низкими знаниями о выборе синего шара из 3-й коробки из-за очень высокой примеси. Энтропия количественно определяет примесь. Таким образом, ящик-1 имеет наименьшую энтропию, второй ящик имеет умеренную энтропию, а третий ящик имеет самую высокую энтропию.

Вероятность выбора

Чтобы сделать концепцию более объективной, давайте поэкспериментируем, выбирая шары из каждой коробки (см. рисунок выше). Как только мы выбираем мяч, мы кладем его обратно в коробку, поэтому событие выбора мяча не зависит.

Вероятность того, что из ящика-1 вынут 4 синих шара

Вероятность того, что из ящика-2 вынут 3 синих и один зеленый шар

Вероятность того, что из ящика-3 вынут 2 синих и 2 зеленых шара

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

Логарифм чисел от 0 до 1 отрицателен, поэтому берется отрицательный логарифм. Энтропия — это средневзвешенное значение логарифма вероятностей. Таким образом, энтропия в нашем примере может быть сформулирована как.

Таким образом, энтропия обобщается как

Таким образом, мы можем обобщить вероятность и энтропию выбора шаров из 3 ящиков как

Из приведенной выше таблицы видно, что с увеличением неопределенности увеличивается и энтропия.

Энтропия в теории информации:

В 1948 году Клод Шеннон опубликовал «Математическая теория коммуникации», также известная как теория информации. Информация является основной единицей коммуникации. Если S является источником информации, испускающей символы {s1, s2, …sn} с вероятностью {p1, p2,...pn} тогда ожидаемое количество информации о наблюдении за выходом S равно

Приведенное выше уравнение выглядит знакомым? Это энтропия, фундаментальная мера в теории информации. Энтропия - это мера неопределенности в случайной величине или процессе. В нашем примере синих / зеленых шаров, когда мы говорим 0 энтропии в случае Box-1, это означает, что требуется ноль битов, чтобы сказать нам, собираемся ли мы получить синие шары или нет поскольку мы на 100% уверены, что выберем синий шар, нам не нужна дополнительная информация. С другой стороны, в случае Box-3 энтропия 1 означает, что нам нужен 1 целый бит (0 или 1), чтобы определить, получим мы синие шары или нет. Только после того, как мы получим 1 бит, наша энтропия станет равной 0.

Энтропия в машинном обучении:

Энтропия используется в дереве решений. Дерево решений — это контролируемое машинное обучение, используемое для классификации и регрессии. В этом разделе мы увидим, как энтропия используется в этом алгоритме машинного обучения.

Структура дерева решений

Это простейшее представление дерева решений. Мы увидим, как построить дерево решений вручную. Расслабьтесь, под «вручную» я подразумевал, что мы не будем использовать такие библиотеки, как sklearn, однако мы по-прежнему собираемся использовать python. В реальных проектах по науке о данных читателям рекомендуется использовать такие библиотеки, как sklearn. Коды Python в этой статье предназначены только для объяснения концепции.

Построение дерева решений

Мы будем использовать игрушечный набор данных, чтобы объяснить концепцию. Набор данных представляет собой наблюдения за тем, когда я ходил в поход в зависимости от погодных условий.

import pandas as pd 
import numpy as np
from math import log2
data=pd.read_csv('hike.csv', header=None)
df=pd.DataFrame(data)
df.columns=['sunny', 'temperature', 'windy', 'go4hike']

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

def entropy(event):
    ### Input events
    ### Output entropy
    event_set=set(event) # unique events
    
    event_space=len(event) # event space
    # Probability of events 
    plist=[(event.count(i)/event_space) for i in event_set]
    # Logarithmic scale
    wted_logplist=[j*log2(j) for j in plist]
    
    ent=sum(wted_logplist)
    if ent!=0:
        return -ent
    else:
        return ent

Рекомендуется всегда тестировать наш код, поэтому мы проверим его на нашем предыдущем примере выбора синих и зеленых шаров из 3 коробок. Ни в коем случае это не комплексное тестирование кода.

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

def node_impurity(event1, event2 ):
    e1=entropy(list(event1))
    e2=entropy(list(event2))
    ln_event1=len(list(event1))
    ln_event2=len(list(event2))
    return (e1*ln_event1+e2*ln_event2)/df.shape[0]Step 1:

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

Взвешенная энтропия солнечного

Взвешенная энтропия ветра

Взвешенная энтропия температуры

Итак, температура — это наш корневой узел, поскольку он имеет наименьшую взвешенную энтропию.

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

Энтропия солнца немного выше.

Есть кое-что интересное, мы замечаем, что примесь черты ветрено, когда температура жаркая, упала до нуля. Давайте посмотрим, как выглядит решение, когда погода жаркая и ветреная.

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

Теперь давайте посмотрим, что происходит, когда температура низкая. Здесь мы видим, что солнечный свет имеет более низкую примесь.

Энтропия ветра в этом случае несколько выше.

Снова видим примесь холодной температуры, а не солнечного нуля. Давайте посмотрим, как выглядит это решение.

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

Это не полное дерево, но читатель должен получить представление о том, как энтропия используется при построении дерева решений. Энтропия — не единственный способ количественного определения примеси. Gini – это еще один метод, основанный на аналогичном принципе. Фактически, gini — это гиперпараметр по умолчанию критерий для sklearn DecisionTreeClassifier, альтернативой является энтропия. Джини выходит за рамки этого блога.

Информация получение

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

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

Заключение

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

Справочник

Нежный учебник по теории информации и обучению Рони Розенфельд — Информатика, Университет Карнеги-Меллона

Теория информации — Колледж вычислительной техники Технологического университета Джорджии

Извлечение информации из массивных наборов данных — Стэнфордский университет