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, 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
-
Число кластеров на класс.
- weightsмассивоподобный объект формы (n_classes,) или (n_classes - 1,), по умолчанию=None
-
Доли образцов, назначенных каждому классу. Если None, классы сбалансированы. Обратите внимание: если
len(weights) == n_classes - 1, вес последнего класса определяется автоматически. Если суммаweightsпревышает 1, может быть возвращено болееn_samplesобразцов. Обратите внимание, что фактические доли классов не будут в точности соответствоватьweights, еслиflip_yне равно 0. - flip_yfloat, по умолчанию=0.01
-
Доля образцов, класс которых назначается случайным образом. Большие значения добавляют шум к меткам и усложняют задачу классификации. Обратите внимание: значение flip_y > 0 по умолчанию в некоторых случаях может привести к тому, что в y будет меньше
n_classes. - class_sepfloat, по умолчанию=1.0
-
Множитель размера гиперкуба. Большие значения увеличивают расстояние между кластерами/классами и упрощают задачу классификации.
- hypercubebool, по умолчанию=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]. Обратите внимание, что масштабирование выполняется после сдвига.
- shufflebool, по умолчанию=True
-
Перемешивание образцов и признаков.
- random_stateint, экземпляр RandomState или None, по умолчанию=None
-
Определяет генерацию случайных чисел при создании набора данных. Передайте int, чтобы получать воспроизводимый результат при нескольких вызовах функции. См. глоссарий.
- return_X_ybool, по умолчанию=True
-
Если True, возвращается кортеж
(X, y)вместо объекта Bunch.Добавлено в версии 1.7.
- Возвращает:
-
-
data
Bunch, еслиreturn_X_yравноFalse. -
Объект, похожий на словарь, со следующими атрибутами.
- DESCRstr
-
Описание функции, которая сгенерировала набор данных.
- parameterdict
-
Словарь, содержащий значения аргументов, переданных функции-генератору.
- feature_infolist of len(n_features)
-
Описание каждого сгенерированного признака.
- Xndarray формы (n_samples, n_features)
-
Сгенерированные образцы.
- yndarray формы (n_samples,)
-
Целочисленная метка класса для каждого образца.
Добавлено в версии 1.7.
-
(X, y)кортеж, если
return_X_yравно True -
Кортеж сгенерированных образцов и меток.
-
data
См. также
make_blobs-
Упрощённый вариант.
make_multilabel_classification-
Несвязанный генератор для задач с несколькими метками.
Примечания
Алгоритм адаптирован по работе Гийона [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–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.datasets.make_classification.html