7.3. 生成数据集#

此外,scikit-learn 包含各种随机样本生成器,可用于构建受控大小和复杂度的合成数据集。

7.3.1. 用于分类和聚类的生成器#

这些生成器生成特征矩阵和相应的离散目标。

7.3.1.1. 单标签#

两者 make_blobsmake_classification 通过为每个类分配一个或多个正态分布的点簇来创建多类数据集。 make_blobs 提供了更多关于每个簇的中心和标准差的控制,并用于演示聚类。 make_classification 专注于通过以下方式引入噪声:相关、冗余和无信息特征;每个类多个高斯簇;以及特征空间的线性变换。

make_gaussian_quantiles 将单个高斯簇划分为由同心超球面分隔的近似等大小的类。 make_hastie_10_2 生成类似的二元 10 维问题。

../_images/sphx_glr_plot_random_dataset_001.png

make_circlesmake_moons 生成二维二元分类数据集,这些数据集对某些算法(例如基于质心的聚类或线性分类)具有挑战性,包括可选的高斯噪声。它们对可视化很有用。 make_circles 生成具有球形决策边界的二元分类高斯数据,而 make_moons 生成两个相互交错的半圆。

7.3.1.2. 多标签#

make_multilabel_classification 生成具有多个标签的随机样本,反映从主题混合中抽取的词袋。每个文档的主题数量是从泊松分布中抽取的,主题本身是从固定的随机分布中抽取的。类似地,单词数量是从泊松分布中抽取的,单词是从多项式分布中抽取的,其中每个主题定义了单词上的概率分布。相对于真实的词袋混合,简化包括

  • 每个主题的单词分布是独立抽取的,而在现实中,所有主题都会受到稀疏基本分布的影响,并且会相互关联。

  • 对于从多个主题生成的文档,所有主题在生成其词袋时权重相等。

  • 文档没有标签,而是从基本分布中随机抽取单词。

../_images/sphx_glr_plot_random_multilabel_dataset_001.png

7.3.1.3. 双聚类#

make_biclusters(shape, n_clusters, *[, ...])

为双聚类生成一个常数块对角结构数组。

make_checkerboard(shape, n_clusters, *[, ...])

为双聚类生成一个具有块棋盘结构的数组。

7.3.2. 回归生成器#

make_regression 生成回归目标作为随机特征的可选稀疏随机线性组合,并带有噪声。其信息特征可能是无关的,或者低秩(少数特征占大多数方差)。

其他回归生成器从随机特征中确定性地生成函数。 make_sparse_uncorrelated 生成一个目标作为四个特征的线性组合,具有固定系数。其他生成器明确地编码非线性关系: make_friedman1 通过多项式和正弦变换相关; make_friedman2 包括特征乘法和倒数;以及 make_friedman3 类似,对目标进行反正切变换。

7.3.3. 流形学习生成器#

make_s_curve([n_samples, noise, random_state])

生成 S 曲线数据集。

make_swiss_roll([n_samples, noise, ...])

生成瑞士卷数据集。

7.3.4. 分解生成器#

make_low_rank_matrix([n_samples, ...])

生成一个主要为低秩的矩阵,具有钟形奇异值。

make_sparse_coded_signal(n_samples, *, ...)

生成一个信号,作为字典元素的稀疏组合。

make_spd_matrix(n_dim, *[, random_state])

生成一个随机的对称正定矩阵。

make_sparse_spd_matrix([n_dim, alpha, ...])

生成一个稀疏对称正定矩阵。