sklearn.datasets.make_low_rank_matrix?

sklearn.datasets.make_low_rank_matrix(n_samples=100, n_features=100, *, effective_rank=10, tail_strength=0.5, random_state=None)

[源碼]

生成具有鐘形奇異值的低階矩陣

大部分方差可以由有效寬度的鐘形曲線解釋:奇異值分布圖的低秩部分為:

(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, default=None
確定用于生成數據集的隨機數生成。 為多個函數調用傳遞可重復輸出的int值。 請參閱詞匯表.。
返回值 說明
X array of shape [n_samples, n_features]
矩陣。