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, weights=None, flip_y=0.01, class_sep=1.0, hypercube=True, shift=0.0, scale=1.0, shuffle=True, random_state=None)[source]
-
Генерирует случайную 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
-
Количество кластеров на класс.
- weightsarray-like of shape (n_classes,) or (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
-
Фактор, умножающий размер гиперкуба. Более высокие значения разделяют кластеры/классы и упрощают задачу классификации.
- hypercubebool, по умолчанию=True
-
Если True, кластеры размещаются в вершинах гиперкуба. Если False, кластеры размещаются в вершинах случайного политопа.
- shiftfloat, ndarray of shape (n_features,) or None, по умолчанию=0.0
-
Смещает признаки на указанное значение. Если None, признаки смещаются на случайное значение, выбранное в диапазоне [-class_sep, class_sep].
- scalefloat, ndarray of shape (n_features,) or None, по умолчанию=1.0
-
Умножает признаки на указанное значение. Если None, признаки масштабируются на случайное значение, выбранное в диапазоне [1, 100]. Обратите внимание, что масштабирование происходит после смещения.
- shufflebool, по умолчанию=True
-
Перемешивает выборки и признаки.
- random_stateint, RandomState instance or None, по умолчанию=None
-
Определяет генерацию случайных чисел для создания набора данных. Передайте целое число для воспроизводимого вывода при многократном вызове функции. См. Словарь.
- Возвращает:
-
- Xndarray of shape (n_samples, n_features)
-
Сгенерированные выборки.
- yndarray of shape (n_samples,)
-
Целочисленные метки для принадлежности к классу каждой выборки.
См. также
make_blobs-
Упрощенная версия.
make_multilabel_classification-
Независимый генератор для задач с множественной меткой.
Примечания
Алгоритм адаптирован из Guyon [1] и был разработан для генерации набора данных «Madelon».
Ссылки
[1]I. Guyon, «Проектирование экспериментов для сравнительного анализа алгоритмов в NIPS 2003», 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)]
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.datasets.make_classification.html