Приведи пример плохой (неинформативной) энтропии в контексте машинного обучения.

«Приведи пример плохой (неинформативной) энтропии в контексте машинного обучения.» — вопрос из категории Статистика и теория вероятностей, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Главный пример — дисбаланс классов:

Представьте задачу обнаружения мошеннических операций, где 99% транзакций легальны (класс 0), и только 1% — мошеннические (класс 1).

import numpy as np
from scipy.stats import entropy
from collections import Counter

# Эмуляция меток для сильно несбалансированного датасета
labels = np.array([0] * 990 + [1] * 10)  # 990 нулей, 10 единиц

# Подсчет вероятностей классов
counts = Counter(labels)
probs = [count / len(labels) for count in counts.values()]

# Расчет энтропии
entropy_value = entropy(probs, base=2)
print(f"Распределение меток: {dict(counts)}")
print(f"Вероятности классов: {probs}")
print(f"Энтропия H(L): {entropy_value:.4f} бит")

# Для сравнения, энтропия сбалансированного распределения (2 класса)
balanced_entropy = entropy([0.5, 0.5], base=2)
print(f"nЭнтропия сбалансированного распределения: {balanced_entropy:.4f} бит")

Вывод:

Распределение меток: {0: 990, 1: 10}
Вероятности классов: [0.99, 0.01]
Энтропия H(L): 0.0808 бит  # ОЧЕНЬ НИЗКАЯ ЭНТРОПИЯ
Энтропия сбалансированного распределения: 1.0000 бит

Почему это «плохо»:

  1. Модель ничему не учится: Простой классификатор, который всегда предсказывает класс 0, достигнет accuracy в 99%, но будет бесполезен. Энтропия близка к нулю, так как исход почти предопределен.
  2. Критерии разделения в деревьях решений (Information Gain) становятся нестабильными. Прирост информации основан на уменьшении энтропии. Если исходная энтропия и так мизерная, найти хорошее разделение практически невозможно.
  3. Проблемы с оценкой: Метрики вроде Accuracy вводят в заблуждение. Необходимо использовать F1-score, Precision-Recall AUC или балансировать данные (через SMOTE, ADASYN, undersampling) и применять взвешивание классов в функции потерь.

Другой пример «плохой» энтропии — абсолютно случайные данные (максимальная энтропия), где никакая закономерность не существует, и обучение невозможно.