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

Рассмотрим следующий пример, в котором мы исследуем вероятность дождя/облачности:

Что, если бы мы захотели узнать энтропию дождя, зная, облачно это или нет? Другими словами, насколько мы уверены/не уверены в дожде, если бы знали облачность.
Я разделил вычисления на 3 простых шага. Прежде чем я раскрою шаги, давайте назовем переменные дождя и облачности как «Y» и «X» соответственно для удобства.

Шаг 1. Рассчитайте сумму всех вероятностей (Y) для каждой конкретной вероятности (X).

То есть просуммируйте p(идет дождь) и p(нет дождя) для каждого p(облачно) и p(безоблачно). В этом случае,

p(x = cloudy) = p(cloudy, is raining) + p(cloudy, not raining) 
              = 24/100 + 25/100
              = 49/100

p(x = not cloudy) = p(not cloudy, is raining) + p(not cloudy, not raining) 
                  = 1/100 + 50/100
                  = 51/100

Шаг 2. Рассчитайте условную энтропию Y для каждой конкретной вероятности (X).

Прежде чем мы углубимся в работу на этом этапе, нам понадобится формула энтропии Шеннона:
* примечание: вместо p(X) нам нужно изменить ее на p(Y | X = x), где x — возможные результаты

Using the modified Shannon entropy,

a)For probability(X = cloudy):

Let A = p(is raining | cloudy)
Let B = p(not raining | cloudy)

conditionalEntropy(Y | cloudy) = - [A * log2(A)) +
                                    B * log2(B)]

                               = - [24/49 * log2(24/49) +
                                    25/49 * log2(25/49)]
                               = 0.9997


b)For probability(X = not cloudy):

Let C = p(is raining | not cloudy)
Let D = p(not raining | not cloudy)

conditionalEntropy(Y | not cloudy) = - [C * log2(C)) +
                                        D * log2(D)]

                                   = - [1/51 * log2(1/51) +
                                        50/51 * log2(50/51)]
                                   = 0.1392

Шаг 3. Рассчитайте среднюю условную энтропию.

На последнем шаге мы суммируем каждую условную энтропию, вычисленную на шаге 2, умноженную на соответствующий p(x), рассчитанный на шаге 1, чтобы получить среднюю условную энтропию.
* примечание: соответствующее значение p(x), рассчитанное на шаге 1, можно рассматривать как вес

conditionalEntropy(Y | X) = P(x = cloudy) * conditionalEntropy(Y | cloudy) +
                            P(x = not cloudy) * conditionalEntropy(Y | not cloudy)
                          
                          = 49/100 * 0.9997 +
                            51/100 * 0.1392

                          = 0.561

Обзор:

Та-да! Вы успешно рассчитали условную энтропию дождя, зная облачность. Однако в вычислениях нет смысла, если мы не знаем смысла наших результатов.

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

Следовательно, условная энтропия показывает нам, существует ли зависимость или корреляция между переменными.