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)[source]#
生成一个随机的 n 类分类问题。
此函数最初创建围绕一个
n_informative维超立方体顶点的点簇,这些簇呈正态分布(std=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
确定数据集创建的随机数生成。传递一个 int 值以在多次函数调用中获得可重现的输出。请参阅词汇表。
- return_X_ybool, default=True
如果为 True,则返回一个元组
(X, y)而不是一个 Bunch 对象。在版本 1.7 中新增。
- 返回:
- data
Bunchifreturn_X_yisFalse. Dictionary-like object, with the following attributes.
- DESCRstr
生成数据集的函数的描述。
- parameterdict
一个字典,存储传递给生成器函数的参数值。
- feature_infolist of len(n_features)
对每个生成特征的描述。
- Xndarray of shape (n_samples, n_features)
生成的样本。
- yndarray of shape (n_samples,)
每个样本的类别成员资格的整数标签。
在版本 1.7 中新增。
- (X, y)tuple if
return_X_yis True 生成的样本和标签组成的元组。
- data
另请参阅
make_blobs简化版本。
make_multilabel_classification用于多标签任务的不相关生成器。
注意事项
该算法改编自 Guyon [1],旨在生成“Madelon”数据集。
References
[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)]