Несбалансированный датасет (Imbalanced Dataset) - Лена Капаца
Несбалансированный датасет (Imbalanced Dataset) by Лена Капаца Oct. 1, 2023 Основы

Несбалансированный датасет – набор данных, где количество примеров разных классов в данных существенно отличается. Например, в задаче бинарной классификации может быть всего два класса: положительный и отрицательный. Если в датасете 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, что делает датасет несбалансированным.

Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

© Лена Капаца. Все права защищены.