Ответ
В машинном обучении энтропия Шеннона измеряет неопределенность или информационную насыщенность распределения. «Плохая» энтропия — это крайние случаи, когда она слишком мала (близка к 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 бит
Почему это «плохо»:
- Модель ничему не учится: Простой классификатор, который всегда предсказывает класс 0, достигнет accuracy в 99%, но будет бесполезен. Энтропия близка к нулю, так как исход почти предопределен.
- Критерии разделения в деревьях решений (Information Gain) становятся нестабильными. Прирост информации основан на уменьшении энтропии. Если исходная энтропия и так мизерная, найти хорошее разделение практически невозможно.
- Проблемы с оценкой: Метрики вроде Accuracy вводят в заблуждение. Необходимо использовать F1-score, Precision-Recall AUC или балансировать данные (через SMOTE, ADASYN, undersampling) и применять взвешивание классов в функции потерь.
Другой пример «плохой» энтропии — абсолютно случайные данные (максимальная энтропия), где никакая закономерность не существует, и обучение невозможно.