Несбалансированный датасет – набор данных, где количество примеров разных классов в данных существенно отличается. Например, в задаче бинарной классификации может быть всего два класса: положительный и отрицательный. Если в датасете 90% примеров принадлежат к классу "положительный", а только 10% к классу "отрицательный", то такой датасет считается несбалансированным.
Давайте создадим небольшой несбалансированный датасет с использованием библиотеки NumPy. Предположим, у нас есть задача бинарной классификации с 2 признаками:
import numpy as np
# Создаем 100 примеров с признаками
np.random.seed(0)
features = np.random.randn(100, 2)
# Создаем метки классов: 90% принадлежат классу 0, 10% - классу 1
labels = np.concatenate([np.zeros(90), np.ones(10)])
# Перемешиваем данные
indices = np.arange(100)
np.random.shuffle(indices)
features = features[indices]
labels = labels[indices]
print(f"Количество примеров класса 0: {np.sum(labels == 0)}")
print(f"Количество примеров класса 1: {np.sum(labels == 1)}")
В этом примере у нас есть 100 примеров, из которых 90 принадлежат к классу 0, а 10 к классу 1, что делает датасет несбалансированным.
Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.
© Лена Капаца. Все права защищены.