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级分类问题。

这最初创建了关于一个的点的正态分布(std=1)的集群 n_informative - 边长的维超立方体 2*class_sep 并为每个类分配相同数量的集群。它引入了这些特征之间的相互依赖性,并向数据添加了各种类型的进一步噪音。

无需洗牌, X 按以下顺序水平堆叠要素:主要要素 n_informative 功能,其次是 n_redundant 信息特征的线性组合,然后是 n_repeated 重复项,随机抽取,并从信息性和冗余特征中进行替换。其余特征充满了随机噪音。因此,无需洗牌,所有有用的功能都包含在列中 X[:, :n_informative + n_redundant + n_repeated] .

阅读更多的 User Guide .

参数:
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,), 默认值=无

分配给每个类别的样本比例。如果没有,那么班级是平衡的。注意如果 len(weights) == n_classes - 1 ,则自动推断最后一个类权重。超过 n_samples 如果总和 weights 超过1。请注意,实际的类比例不会完全匹配 weightsflip_y 不是0。

flip_y浮动,默认=0.01

随机分配类别的样本比例。较大的值会在标签中引入噪音,并使分类任务变得更加困难。请注意,默认设置flip_y > 0可能会导致小于 n_classes 在某些情况下。

class_sepfloat,默认=1.0

乘以超立方体大小的因子。 较大的值会分散集群/类,并使分类任务更容易。

hypercube布尔,默认=True

如果为True,则将集群放置在超立方体的顶点上。如果为假,则将集群放置在随机多边形的顶点上。

shiftfloat,ndArray of shape(n_features,)或无,默认=0.0

按指定值移动要素。如果无,则要素将按绘制的随机值移动 [-class_sep, class_sep] .

scalefloat、ndarray of shape(n_features,)或None,默认值=1.0

将要素乘以指定值。如果无,则通过抽取的随机值缩放要素 [1, 100] .请注意,缩放发生在转移之后。

shuffle布尔,默认=True

洗牌样本和功能。

random_stateint,RandomState实例或无,默认=无

确定创建数据集的随机数生成。传递int以获得跨多个函数调用的可重复输出。看到 Glossary .

返回:
X形状的nd数组(n_samples,n_features)

生成的样本。

y形状的nd数组(n_samples,)

每个样本的类成员资格的integer标签。

参见

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)]