maxframe.learn.datasets.make_low_rank_matrix#

maxframe.learn.datasets.make_low_rank_matrix(n_samples=100, n_features=100, effective_rank=10, tail_strength=0.5, random_state=None, chunk_size=None)[源代码]#

生成一个具有钟形奇异值的 mostly low rank 矩阵

大多数方差可以通过宽度为 effective_rank 的钟形曲线来解释:奇异值分布的低秩部分为:

(1 - tail_strength) * exp(-1.0 * (i / effective_rank) ** 2)

剩余的奇异值尾部是厚尾的,按如下方式递减:

tail_strength * exp(-0.1 * i / effective_rank).

分布中的低秩部分可以视为数据的结构化信号部分,而尾部则可视为无法通过少量线性成分(奇异向量)概括的数据噪声部分。

这种奇异值分布在实际中经常出现,例如:
  • 人脸的灰度图像

  • 从网络爬取的文本文档的 TF-IDF 向量

更多内容请参见 用户指南

参数:
  • n_samples (int, optional (default=100)) -- 样本数量。

  • n_features (int, optional (default=100)) -- 特征数量。

  • effective_rank (int, optional (default=10)) -- 用线性组合解释大部分数据所需的奇异向量近似数量。

  • tail_strength (float between 0.0 and 1.0, optional (default=0.5)) -- 奇异值分布中厚噪声尾部的相对重要性。

  • random_state (int, RandomState instance or None (default)) -- 决定数据集创建时的随机数生成方式。传入一个整数可以在多次函数调用中获得可重现的输出。详见 术语表

  • chunk_size (int or tuple of int or tuple of ints, optional) -- 每个维度上期望的分块大小

返回:

X -- 矩阵。

返回类型:

array of shape [n_samples, n_features]