隨機範圍查找器#
- sklearn.utils.extmath.randomized_range_finder(A, *, size, n_iter, power_iteration_normalizer='auto', random_state=None)[原始碼]#
計算一個正交矩陣,其範圍近似於 A 的範圍。
- 參數:
- A二維陣列
輸入資料矩陣。
- size整數
返回陣列的大小。
- n_iter整數
用於穩定結果的冪迭代次數。
- power_iteration_normalizer{‘auto’, ‘QR’, ‘LU’, ‘none’}, 預設值=’auto’
是否使用逐步 QR 因式分解(最慢但最準確)、‘none’(最快但當
n_iter
很大時,例如通常為 5 或更大時,數值不穩定)或 ‘LU’ 因式分解(數值穩定但可能會稍微降低準確性)來正規化冪迭代。「auto」模式在n_iter
<= 2 時不應用任何正規化,否則會切換到 LU。於 0.18 版本新增。
- random_state整數、RandomState 實例或 None,預設值=None
用於對資料進行洗牌時使用的偽隨機數產生器的種子,即取得隨機向量以初始化演算法。傳遞整數可在多個函數呼叫之間產生可重現的結果。請參閱詞彙表。
- 返回:
- Qndarray
一個 (size x size) 的投影矩陣,其範圍很好地近似於輸入矩陣 A 的範圍。
注意事項
遵循 Halko 等人 (2009) 在《使用隨機性尋找結構:用於構建近似矩陣分解的隨機演算法》 中的演算法 4.3。
A. Szlam 等人於 2014 年實作的用於主成分分析的隨機演算法。
範例
>>> import numpy as np >>> from sklearn.utils.extmath import randomized_range_finder >>> A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> randomized_range_finder(A, size=2, n_iter=2, random_state=42) array([[-0.21..., 0.88...], [-0.52..., 0.24...], [-0.82..., -0.38...]])