randomized_range_finder#
- sklearn.utils.extmath.randomized_range_finder(A, *, size, n_iter, power_iteration_normalizer='auto', random_state=None)#
计算一个正交矩阵,其范围近似于A的范围。
- Parameters:
- A二维数组
输入数据矩阵。
- size整数
返回数组的大小。
- n_iter整数
用于稳定结果的幂迭代次数。
- power_iteration_normalizer{‘auto’, ‘QR’, ‘LU’, ‘none’}, 默认=’auto’
幂迭代是否通过逐步QR分解(最慢但最准确)、’none’(最快但在
n_iter
较大时数值不稳定,例如通常为5或更大)或’LU’分解(数值稳定但可能在准确性上略有损失)进行归一化。’auto’模式在n_iter
<= 2时不进行归一化,否则切换到LU。Added in version 0.18.
- random_state整数, RandomState实例或None, 默认=None
伪随机数生成器的种子,用于在洗牌数据时,即获取随机向量以初始化算法。传递一个整数以在多次函数调用中获得可重复的结果。参见 Glossary 。
- Returns:
- Qndarray
一个(size x size)投影矩阵,其范围很好地近似于输入矩阵A的范围。
Notes
遵循以下算法4.3: “Finding structure with randomness: Stochastic algorithms for constructing approximate matrix decompositions” Halko, et al. (2009)
实现了一种用于主成分分析的随机算法 A. Szlam et al. 2014
Examples
>>> 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...]])