make_classification#

sklearn.datasets.make_classification(n_samples=100, n_features=20, *, n_informative=2, n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2, веса=None, flip_y=0.01, class_sep=1.0, гиперкуб=True, shift=0.0, scale=1.0, перемешивание=True, random_state=None, return_X_y=True)[источник]#

Сгенерировать случайную задачу классификации на n классов.

Изначально создаются кластеры точек, нормально распределенных (std=1) вокруг вершин n_informative-мерный гиперкуб со сторонами длиной 2*class_sep и назначает равное количество кластеров каждому классу. Это вводит взаимозависимость между этими признаками и добавляет различные типы дополнительного шума к данным.

Без перемешивания, X горизонтально объединяет признаки в следующем порядке: основные n_informative признаков, за которыми следует n_redundant линейные комбинации информативных признаков, за которыми следует n_repeated дубликаты, случайно выбранные с возвращением из информативных и избыточных признаков. Остальные признаки заполняются случайным шумом. Таким образом, без перемешивания все полезные признаки содержатся в столбцах X[:, :n_informative + n_redundant + n_repeated].

Подробнее в Руководство пользователя.

Параметры:
n_samplesint, по умолчанию=100

Количество образцов.

n_featuresint, по умолчанию=20

Общее количество признаков. Они включают n_informative информативные признаки, n_redundant избыточные признаки, n_repeated дублирующиеся признаки и n_features-n_informative-n_redundant-n_repeated бесполезные признаки, выбранные случайным образом.

n_informativeint, по умолчанию=2

Количество информативных признаков. Каждый класс состоит из нескольких гауссовых кластеров, каждый расположен вокруг вершин гиперкуба в подпространстве размерности n_informative. Для каждого кластера информативные признаки независимо выбираются из N(0, 1), а затем случайным образом линейно комбинируются внутри каждого кластера для добавления ковариации. Затем кластеры размещаются на вершинах гиперкуба.

n_redundantint, по умолчанию=2

Количество избыточных признаков. Эти признаки генерируются как случайные линейные комбинации информативных признаков.

n_repeatedint, по умолчанию=0

Количество дублированных признаков, случайно выбранных из информативных и избыточных признаков.

n_classesint, по умолчанию=2

Количество классов (или меток) задачи классификации.

n_clusters_per_classint, по умолчанию=2

Количество кластеров на класс.

весаarray-like формы (n_classes,) или (n_classes - 1,), по умолчанию=None

Доли образцов, отнесенных к каждому классу. Если None, то классы сбалансированы. Обратите внимание, что если len(weights) == n_classes - 1, тогда вес последнего класса автоматически выводится. Более чем n_samples образцы могут быть возвращены, если сумма weights превышает 1. Обратите внимание, что фактические пропорции классов не будут точно соответствовать weights когда flip_y не равно 0.

flip_yfloat, по умолчанию=0.01

Доля выборок, класс которых назначается случайным образом. Большие значения вносят шум в метки и усложняют задачу классификации. Обратите внимание, что настройка по умолчанию flip_y > 0 может привести к менее чем n_classes в y в некоторых случаях.

class_sepfloat, по умолчанию=1.0

Множитель размера гиперкуба. Большие значения разбрасывают кластеры/классы и упрощают задачу классификации.

гиперкубbool, по умолчанию=True

Если True, кластеры размещаются в вершинах гиперкуба. Если False, кластеры размещаются в вершинах случайного политопа.

shiftfloat, ndarray формы (n_features,) или None, по умолчанию=0.0

Сдвиг признаков на указанное значение. Если None, то признаки сдвигаются на случайное значение, выбранное из [-class_sep, class_sep].

scalefloat, ndarray формы (n_features,) или None, по умолчанию=1.0

Умножьте признаки на указанное значение. Если None, то признаки масштабируются случайным значением, выбранным из [1, 100]. Обратите внимание, что масштабирование происходит после сдвига.

перемешиваниеbool, по умолчанию=True

Перемешать образцы и признаки.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Определяет генерацию случайных чисел для создания набора данных. Передайте целое число для воспроизводимого результата при нескольких вызовах функции. См. Глоссарий.

return_X_ybool, по умолчанию=True

Если True, кортеж (X, y) вместо объекта Bunch возвращается.

Добавлено в версии 1.7.

Возвращает:
данныеBunch if return_X_y является False.

Объект, подобный словарю, со следующими атрибутами.

DESCRstr

Описание функции, которая сгенерировала набор данных.

параметрdict

Словарь, который хранит значения аргументов, переданных в функцию-генератор.

feature_infoсписок длины n_features

Описание для каждого сгенерированного признака.

Xndarray формы (n_samples, n_features)

Сгенерированные образцы.

yndarray формы (n_samples,)

Целочисленная метка принадлежности к классу для каждой выборки.

Добавлено в версии 1.7.

(X, y)кортеж если return_X_y равно True

Кортеж сгенерированных образцов и меток.

Смотрите также

make_blobs

Упрощённый вариант.

make_multilabel_classification

Несвязанный генератор для многометочных задач.

Примечания

Алгоритм адаптирован из работы Guyon [1] и был разработан для генерации набора данных "Madelon".

Ссылки

[1]

I. Guyon, “Design of experiments for the NIPS 2003 variable selection benchmark”, 2003.

Примеры

>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(random_state=42)
>>> X.shape
(100, 20)
>>> y.shape
(100,)
>>> list(y[:5])
[np.int64(0), np.int64(0), np.int64(1), np.int64(1), np.int64(0)]