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)#
生成一个随机的n类分类问题。
最初,这会在一个边长为
2*class_sep
的n_informative
维超立方体的顶点周围创建正态分布(标准差=1)的点簇,并将相等数量的簇分配给每个类。它引入了这些特征之间的相互依赖性,并向数据添加了各种类型的进一步噪声。在不进行洗牌的情况下,
X
按以下顺序水平堆叠特征:首先是主要的n_informative
特征,然后是n_redundant
信息特征的线性组合,接着是n_repeated
重复特征,这些重复特征从信息特征和冗余特征中随机抽取并替换。剩余的特征用随机噪声填充。因此,在不进行洗牌的情况下,所有有用的特征都包含在列X[:, :n_informative + n_redundant + n_repeated]
中。有关使用示例,请参见 绘制随机生成的分类数据集 。
更多信息请参阅 用户指南 。
- Parameters:
- 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
的样本。请注意,当flip_y
不为0时,实际的类比例不会完全匹配weights
。- flip_yfloat, 默认=0.01
随机分配类别的样本比例。较大的值会在标签中引入噪声,使分类任务更加困难。请注意,默认设置flip_y > 0可能会在某些情况下导致y中的类别少于
n_classes
。- class_sepfloat, 默认=1.0
乘以超立方体大小的因子。较大的值会分散簇/类,使分类任务更容易。
- hypercubebool, 默认=True
如果为True,簇将放置在超立方体的顶点上。如果为False,簇将放置在随机多面体的顶点上。
- shiftfloat, 形状为(n_features,)的ndarray或None, 默认=0.0
按指定值平移特征。如果为None,则特征会按在[-class_sep, class_sep]中随机抽取的值平移。
- scalefloat, 形状为(n_features,)的ndarray或None, 默认=1.0
按指定值缩放特征。如果为None,则特征会按在[1, 100]中随机抽取的值缩放。请注意,缩放发生在平移之后。
- shufflebool, 默认=True
洗牌样本和特征。
- random_stateint, RandomState实例或None, 默认=None
确定数据集创建的随机数生成。为多个函数调用传递一个int以获得可重复的输出。 请参阅 术语 。
- Returns:
- X形状为(n_samples, n_features)的ndarray
生成的样本。
- y形状为(n_samples,)的ndarray
每个样本的类成员资格的整数标签。
See also
make_blobs
简化变体。
make_multilabel_classification
不相关的多标签任务生成器。
Notes
该算法改编自Guyon [1],旨在生成“Madelon”数据集。
References
[1]I. Guyon, “Design of experiments for the NIPS 2003 variable selection benchmark”, 2003.
Examples
>>> from sklearn.datasets import make_classification >>> X, y = make_classification(random_state=42) >>> X.shape (100, 20) >>> y.shape (100,) >>> list(y[:5]) [0, 0, 1, 1, 0]
Gallery examples#

sphx_glr_auto_examples_model_selection_plot_successive_halving_iterations.py