创建分类数据集#
- 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类分类问题。
该函数首先创建围绕
n_informative
维超立方体顶点正态分布(标准差=1)的点簇,边长为2*class_sep
,并将相同数量的簇分配给每个类。它会在这些特征之间引入相互依赖性,并向数据添加各种类型的额外噪声。在不进行混洗的情况下,
X
会按以下顺序水平堆叠特征:主要的n_informative
个特征,然后是n_redundant
个信息特征的线性组合,然后是n_repeated
个重复项(从信息特征和冗余特征中随机抽取,允许重复)。其余特征将填充随机噪声。因此,在不进行混洗的情况下,所有有用特征都包含在列X[:, :n_informative + n_redundant + n_repeated]
中。在用户指南中了解更多信息。
- 参数:
- n_samplesint, default=100
样本数量。
- n_featuresint, default=20
特征总数。这些特征包括
n_informative
个信息特征,n_redundant
个冗余特征,n_repeated
个重复特征和n_features-n_informative-n_redundant-n_repeated
个随机抽取的无用特征。- n_informativeint, default=2
信息特征的数量。每个类由多个高斯簇组成,每个簇都位于
n_informative
维子空间中超立方体的顶点附近。对于每个簇,信息特征独立地从N(0, 1)中抽取,然后在每个簇内随机线性组合以增加协方差。然后将这些簇放置在超立方体的顶点上。- n_redundantint, default=2
冗余特征的数量。这些特征作为信息特征的随机线性组合生成。
- n_repeatedint, default=0
重复特征的数量,从信息特征和冗余特征中随机抽取。
- n_classesint, default=2
分类问题的类别(或标签)数量。
- n_clusters_per_classint, default=2
每个类别的簇数。
- weightsarray-like of shape (n_classes,) or (n_classes - 1,), default=None
分配给每个类的样本比例。如果为None,则类是平衡的。请注意,如果
len(weights) == n_classes - 1
,则最后一个类权重将自动推断。如果weights
的总和超过1,则可能返回超过n_samples
个样本。请注意,当flip_y
不为0时,实际的类比例不会完全匹配weights
。- flip_yfloat, default=0.01
随机分配类别的样本比例。较大的值会在标签中引入噪声,并使分类任务更难。请注意,默认设置flip_y > 0在某些情况下可能导致y中的类别少于
n_classes
。- class_sepfloat, default=1.0
乘以超立方体大小的因子。较大的值会分散簇/类,并使分类任务更容易。
- hypercubebool, default=True
如果为True,则将簇放在超立方体的顶点上。如果为False,则将簇放在随机多面体的顶点上。
- shiftfloat, ndarray of shape (n_features,) or None, default=0.0
按指定值移动特征。如果为None,则特征将按在[-class_sep, class_sep]中随机抽取的值移动。
- scalefloat, ndarray of shape (n_features,) or None, default=1.0
按指定值乘以特征。如果为None,则特征将按在[1, 100]中随机抽取的值缩放。请注意,缩放发生在移动之后。
- shufflebool, default=True
混洗样本和特征。
- random_stateint, RandomState instance or None, default=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)]