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

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

Увидев изображение выше, вы можете спросить: «Как алгоритм дерева решений решает, где разделить?» или «Как он выбирает лучший атрибут (узел решения)?»

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

Предположим, у вас есть набор данных, содержащий 4 функции (прогноз, температура, влажность и ветер) и один ярлык (воспроизведение).

Вас просят построить дерево решений для этого набора данных, первый вопрос, который вы зададите: «Где разделить?», «Какой атрибут я должен выбрать в качестве узла принятия решения?».

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

Что такое энтропия и как ее рассчитать?

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

Дана дискретная случайная величина X с возможными исходами x1, x2,…,xn, которые происходят с вероятностью P(x1),…, P(xn) , энтропия X формально определяется как:

Давайте снова возьмем наш набор данных и рассчитаем его энтропию для значения метки (это дискретное или категориальное да/нет), у нас есть 9 да и 5 нет, поэтому энтропия нашего набора данных рассчитывается как:

Видеть!! Это легко вычислить.

Получение информации:

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

Прирост информации = энтропия (S) — [(взвешенное среднее) * энтропия (каждая функция)]

Вернемся к нашему набору данных, чтобы лучше понять эту формулу.

Энтропия (S) = 0,94, что является энтропией нашего набора данных (метки).

посчитаем информационный прирост по признаку «прогноз»; «прогноз» имеет три значения: солнечно (2да/3нет), пасмурно (4да/0нет) и дождливо (3да/2нет).

Энтропия (прогноз = солнечно) = -2/5 log2 (2/5) -3/5log2 (3/5) = 0,971

Энтропия (прогноз = пасмурно) = -4/4 log2 (4/4) = 0

Энтропия (прогноз = дождь) = -3/5 log2 (3/5) -2/5log2 (2/5) = 0,971

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

для прогноза = солнечно, взвешенное среднее = 5/14

для прогноза = пасмурно, взвешенное среднее = 4/14

для прогноза = дождливо, взвешенное среднее = 5/14

Прирост информации (прогноз) = 0,94-[5/14 * E (солнечно) + 4/14 * E (пасмурно) + 5/14 * E (дождь)

Прирост информации (прогноз) = 0,94-[5/14 * 0,971+ 4/14 * 0 + 5/14 * 0,971

Наконец, мы получаем прирост информации (прогноз) = 0,247.

Используя тот же процесс, вы можете рассчитать прирост информации для других характеристик (температура, влажность и ветер).

Я рассчитал их раньше, вы найдете:

Прирост информации (прогноз) = 0,247

Прирост информации (темп) = 0,029

Прирост информации (влажность) = 0,152

Прирост информации (ветрено) = 0,048

Что будет нашим корневым узлом принятия решений?

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

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

исходный код можно найти на моем GitHub: https://github.com/jairiidriss