当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cuml.datasets.make_classification用法及代码示例


用法:

cuml.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, order='F', dtype='float32', _centroids=None, _informative_covariance=None, _redundant_covariance=None, _repeated_indices=None)

生成一个随机的n-class 分类问题。这最初会创建正态分布 (std=1) 的点簇,该点簇围绕边长为 2*class_sepn_informative 维超立方体的顶点,并为每个类分配相等数量的簇。它引入了这些特征之间的相互依赖关系,并为数据添加了各种类型的进一步噪声。不打乱,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)

每个类的簇数。

weightsarray-like of shape (n_classes,) or (n_classes - 1,), (default=None)

分配给每个类别的样本比例。如果没有,那么类是平衡的。请注意,如果 len(weights) == n_classes - 1 ,则会自动推断最后一个类的权重。如果 weights 的总和超过 1,则可能返回超过 n_samples 的样本。

flip_y浮点数,可选(默认=0.01)

随机分配类别的样本的比例。较大的值会在标签中引入噪声并使分类任务更加困难。

class_sep浮点数,可选(默认=1.0)

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

hypercube布尔值,可选(默认 = True)

如果为 True,则将簇放在超立方体的顶点上。如果为 False,则将簇放在随机多面体的顶点上。

shift浮点数,形状数组 [n_features] 或无,可选(默认 = 0.0)

按指定值移动特征。如果没有,则特征将移动 [-class_sep, class_sep] 中绘制的随机值。

scale浮点数,形状数组 [n_features] 或无,可选(默认 = 1.0)

将特征乘以指定的值。如果为 None,则按 [1, 100] 中绘制的随机值对特征进行缩放。请注意,缩放发生在移位之后。

shuffle布尔值,可选(默认 = True)

Shuffle[洗牌]样本和特征。

random_stateint RandomState 实例或无(默认)

确定数据集创建的随机数生成。传递 int 以获得跨多个函数调用的可重现输出。请参阅词汇表。

order: str, optional (default=’F’)

生成样本的顺序

dtypestr,可选(默认='float32')

生成样本的 Dtype

_centroids: array of centroids of shape (n_clusters, n_informative)
_informative_covariance: array for covariance between informative features

形状(n_clusters,n_informative,n_informative)

_redundant_covariance: array for covariance between redundant features

形状(n_informative,n_redundant)

_repeated_indices: array of indices for the repeated features

形状 (n_repeated, )

返回

X形状为 [n_samples, n_features] 的设备数组

生成的样本。

y形状为 [n_samples] 的设备数组

每个样本的类别成员的整数标签。

注意

该算法改编自 Guyon [1],旨在生成 “Madelon” 数据集。我们如何针对 GPU 进行优化:

  1. 首先,我们从标准单变量而不是零生成 X。这节省了内存,因为我们不需要每次为每个要素类(信息性、重复性等)生成单变量,同时还提供了在 GPU 上生成大矩阵的额外加速

  2. 我们生成order=F 构造。我们利用 X 是从单变量法线生成的事实,并且通过矩阵乘法引入协方差。这意味着,我们可以将 X 生成为一维数组,然后将其重塑为所需的顺序,这只会更新元数据并消除副本

  3. 最后,我们还按构造进行洗牌。对每个样本的质心 index 进行置换,然后我们为每个质心构建数据。此 shuffle 适用于 order=Corder=F 并且无需辅助副本

参考

1

I. Guyon, “Design of experiments for the NIPS 2003 variable selection benchmark”, 2003.

例子

from cuml.datasets.classification import make_classification

X, y = make_classification(n_samples=10, n_features=4,
                           n_informative=2, n_classes=2)

print("X:")
print(X)

print("y:")
print(y)

输出:

X:
[[-2.3249989  -0.8679415  -1.1511791   1.3525577 ]
[ 2.2933831   1.3743551   0.63128835 -0.84648645]
[ 1.6361488  -1.3233329   0.807027   -0.894092  ]
[-1.0093077  -0.9990691  -0.00808992  0.00950443]
[ 0.99803793  2.068382    0.49570698 -0.8462848 ]
[-1.2750955  -0.9725835  -0.2390058   0.28081596]
[-1.3635055  -0.9637669  -0.31582272  0.37106958]
[ 1.1893625   2.227583    0.48750278 -0.8737561 ]
[-0.05753583 -1.0939395   0.8188342  -0.9620734 ]
[ 0.47910076  0.7648213  -0.17165393  0.26144698]]

y:
[0 1 0 0 1 0 0 1 0 1]

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cuml.datasets.make_classification。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。